<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <title>Maven 学习笔记 | 星辰阁</title>
  <meta name="keywords" content=" 教程 , Maven ">
  <meta name="description" content="Maven 学习笔记 | 星辰阁">
    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
<meta name="description" content="个人简介李瑞桐 毕业于东北石油大学，目前从事殡葬相关应用开发工作。 喜欢研究新兴技术。 联系方式QQ :86415270邮箱 :86415270@qq.com">
<meta property="og:type" content="website">
<meta property="og:title" content="about">
<meta property="og:url" content="https://loveyangxiaoyu.gitee.io/lrt_blog/about/index.html">
<meta property="og:site_name" content="星辰阁">
<meta property="og:description" content="个人简介李瑞桐 毕业于东北石油大学，目前从事殡葬相关应用开发工作。 喜欢研究新兴技术。 联系方式QQ :86415270邮箱 :86415270@qq.com">
<meta property="og:locale" content="zh_CN">
<meta property="article:published_time" content="2019-11-11T07:11:13.000Z">
<meta property="article:modified_time" content="2022-11-20T05:27:08.036Z">
<meta property="article:author" content="李瑞桐">
<meta name="twitter:card" content="summary">


<link rel="icon" href="/lrt_blog/img/favicon.png" type="images/x-icon">

<link href="/lrt_blog/css/style.css?v=1.0.0" rel="stylesheet">

<link href="/lrt_blog/css/hl_theme/atom-light.css?v=1.0.0" rel="stylesheet">

<link href="//cdn.bootcss.com/animate.css/3.5.2/animate.min.css" rel="stylesheet">
<link href="//cdn.bootcss.com/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet">

<script src="//cdn.bootcss.com/jquery/2.2.4/jquery.min.js"></script>
<script src="/lrt_blog/js/jquery.autocomplete.min.js?v=1.0.0" ></script>

<script src="//cdn.bootcss.com/highlight.js/9.12.0/highlight.min.js"></script>
<script>
    hljs.initHighlightingOnLoad();
</script>

<script src="//cdn.bootcss.com/nprogress/0.2.0/nprogress.min.js"></script>



<script src="//cdn.bootcss.com/jquery-cookie/1.4.1/jquery.cookie.min.js" ></script>

<script src="/lrt_blog/js/iconfont.js?v=1.0.0" ></script>

<meta name="generator" content="Hexo 4.2.1"><link rel="alternate" href="/lrt_blog/atom.xml" title="星辰阁" type="application/atom+xml">
</head>
<div style="display: none">
  <input class="theme_disqus_on" value="false">
  <input class="theme_preload_comment" value="false">
  <input class="theme_blog_path" value="/lrt_blog">
</div>

<body>
<aside class="nav">
    <div class="nav-left">
        <a href="/lrt_blog/" class="avatar_target">
    <img class="avatar" src="/lrt_blog/img/avatar.jpg" />
</a>
<div class="author">
    <span>李瑞桐</span>
</div>

<div class="icon">
    
        
        <a title="rss" href="/lrt_blog/atom.xml" target="_blank">
            
                <svg class="iconfont-svg" aria-hidden="true">
                    <use xlink:href="#icon-rss"></use>
                </svg>
            
        </a>
        
    
        
        <a title="github" href="https://github.com/lrt890424" target="_blank">
            
                <svg class="iconfont-svg" aria-hidden="true">
                    <use xlink:href="#icon-github"></use>
                </svg>
            
        </a>
        
    
        
        <a title="gitee" href="https://gitee.com/loveyangxiaoyu" target="_blank">
            
                <svg class="iconfont-svg" aria-hidden="true">
                    <use xlink:href="#icon-gitee"></use>
                </svg>
            
        </a>
        
    
        
    
        
    
        
        <a title="csdn" href="https://blog.csdn.net/lrt890424" target="_blank">
            
                <svg class="iconfont-svg" aria-hidden="true">
                    <use xlink:href="#icon-csdn"></use>
                </svg>
            
        </a>
        
    
        
        <a title="oschina" href="https://my.oschina.net/loveyangxiaoyu" target="_blank">
            
                <svg class="iconfont-svg" aria-hidden="true">
                    <use xlink:href="#icon-oschina"></use>
                </svg>
            
        </a>
        
    
        
    
</div>




<ul>
    <li><div class="all active">全部文章<small>(33)</small></div></li>
    
        
            
            <li><div data-rel="Linux"><i class="fold iconfont icon-right"></i>Linux<small>(9)</small></div>
                
                    <ul class="sub hide">
                        
                        <li><div data-rel="CentOS">CentOS<small>(3)</small></div>
                            
                        </li>
                            
                        <li><div data-rel="Ubuntu">Ubuntu<small>(2)</small></div>
                            
                        </li>
                            
                    </ul>
                
            </li>
            
        
    
        
            
        
    
        
            
        
    
        
            
            <li><div data-rel="开发工具"><i class="fold iconfont icon-right"></i>开发工具<small>(6)</small></div>
                
                    <ul class="sub hide">
                        
                        <li><div data-rel="SVN">SVN<small>(1)</small></div>
                            
                        </li>
                            
                        <li><div data-rel="Git">Git<small>(2)</small></div>
                            
                        </li>
                            
                        <li><div data-rel="jd-gui">jd-gui<small>(1)</small></div>
                            
                        </li>
                            
                        <li><div data-rel="Markdown">Markdown<small>(1)</small></div>
                            
                        </li>
                            
                        <li><div data-rel="Maven">Maven<small>(1)</small></div>
                            
                        </li>
                            
                    </ul>
                
            </li>
            
        
    
        
            
            <li><div data-rel="存储"><i class="fold iconfont icon-right"></i>存储<small>(7)</small></div>
                
                    <ul class="sub hide">
                        
                        <li><div data-rel="MongoDB">MongoDB<small>(1)</small></div>
                            
                        </li>
                            
                        <li><div data-rel="MySQL">MySQL<small>(3)</small></div>
                            
                        </li>
                            
                        <li><div data-rel="Redis">Redis<small>(1)</small></div>
                            
                        </li>
                            
                        <li><div data-rel="Navicat">Navicat<small>(1)</small></div>
                            
                        </li>
                            
                        <li><div data-rel="DM">DM<small>(1)</small></div>
                            
                        </li>
                            
                    </ul>
                
            </li>
            
        
    
        
            
            <li><div data-rel="Windows">Windows<small>(3)</small></div>
                
            </li>
            
        
    
        
            
        
    
        
            
            <li><div data-rel="笔记">笔记<small>(1)</small></div>
                
            </li>
            
        
    
        
            
        
    
        
            
            <li><div data-rel="Web服务器"><i class="fold iconfont icon-right"></i>Web服务器<small>(1)</small></div>
                
                    <ul class="sub hide">
                        
                        <li><div data-rel="Nginx">Nginx<small>(1)</small></div>
                            
                        </li>
                            
                    </ul>
                
            </li>
            
        
    
        
            
            <li><div data-rel="容器"><i class="fold iconfont icon-right"></i>容器<small>(1)</small></div>
                
                    <ul class="sub hide">
                        
                        <li><div data-rel="Docker">Docker<small>(1)</small></div>
                            
                        </li>
                            
                    </ul>
                
            </li>
            
        
    
        
            
            <li><div data-rel="前端开发"><i class="fold iconfont icon-right"></i>前端开发<small>(3)</small></div>
                
                    <ul class="sub hide">
                        
                        <li><div data-rel="Vue CLI">Vue CLI<small>(1)</small></div>
                            
                        </li>
                            
                        <li><div data-rel="Yarn">Yarn<small>(1)</small></div>
                            
                        </li>
                            
                        <li><div data-rel="Eslint">Eslint<small>(1)</small></div>
                            
                        </li>
                            
                    </ul>
                
            </li>
            
        
    
        
            
        
    
        
            
        
    
        
            
        
    
        
            
            <li><div data-rel="工具"><i class="fold iconfont icon-right"></i>工具<small>(1)</small></div>
                
                    <ul class="sub hide">
                        
                        <li><div data-rel="hexo">hexo<small>(1)</small></div>
                            
                        </li>
                            
                    </ul>
                
            </li>
            
        
    
        
            
        
    
        
            
        
    
        
            
        
    
        
            
        
    
        
            
        
    
        
            
        
    
        
            
        
    
        
            
        
    
        
            
        
    
        
            
        
    
        
            
            <li><div data-rel="开源">开源<small>(1)</small></div>
                
            </li>
            
        
    
        
            
        
    
</ul>
<div class="left-bottom">
    <div class="menus">
    
    
    
    
    </div>
    <div><a class="about  site_url"  href="/lrt_blog/about">关于</a></div>
</div>
<input type="hidden" id="yelog_site_posts_number" value="33">
<input type="hidden" id="yelog_site_word_count" value="52k">
<div style="display: none">
    <span id="busuanzi_value_site_uv"></span>
    <span id="busuanzi_value_site_pv"></span>
</div>

    </div>
    <div class="nav-right">
        <div class="friends-area">
    <div class="friends-title">
        友情链接
        <i class="back-title-list"></i>
    </div>
    <div class="friends-content">
        <ul>
            
            <li><a target="_blank" href="http://yelog.org/">叶落阁</a></li>
            
        </ul>
    </div>
</div>
        <div class="title-list">
    <form onkeydown="if(event.keyCode==13){return false;}">
        <input class="search" type="text" placeholder="以 in: 开头进行全文搜索" autocomplete="off"id="local-search-input" >
        <i class="cross"></i>
        <span>
            <label for="tagswitch">Tags:</label>
            <input id="tagswitch" type="checkbox" style="display: none" />
            <i id="tagsWitchIcon"></i>
        </span>
    </form>
    <div class="tags-list">
    
    <li class="article-tag-list-item">
        <a class="color3">教程</a>
    </li>
    
    <li class="article-tag-list-item">
        <a class="color2">centos</a>
    </li>
    
    <li class="article-tag-list-item">
        <a class="color1">linux</a>
    </li>
    
    <li class="article-tag-list-item">
        <a class="color5">问题集锦</a>
    </li>
    
    <li class="article-tag-list-item">
        <a class="color4">防火墙</a>
    </li>
    
    <li class="article-tag-list-item">
        <a class="color5">软件安装</a>
    </li>
    
    <li class="article-tag-list-item">
        <a class="color2">ubuntu</a>
    </li>
    
    <li class="article-tag-list-item">
        <a class="color4">svn</a>
    </li>
    
    <li class="article-tag-list-item">
        <a class="color4">git</a>
    </li>
    
    <li class="article-tag-list-item">
        <a class="color3">MongoDB</a>
    </li>
    
    <li class="article-tag-list-item">
        <a class="color2">jd-gui</a>
    </li>
    
    <li class="article-tag-list-item">
        <a class="color5">java</a>
    </li>
    
    <li class="article-tag-list-item">
        <a class="color4">反编译</a>
    </li>
    
    <li class="article-tag-list-item">
        <a class="color1">MySQL</a>
    </li>
    
    <li class="article-tag-list-item">
        <a class="color1">Redis</a>
    </li>
    
    <li class="article-tag-list-item">
        <a class="color5">学习笔记</a>
    </li>
    
    <li class="article-tag-list-item">
        <a class="color3">navicat</a>
    </li>
    
    <li class="article-tag-list-item">
        <a class="color3">DM</a>
    </li>
    
    <li class="article-tag-list-item">
        <a class="color3">windows</a>
    </li>
    
    <li class="article-tag-list-item">
        <a class="color5">系统优化</a>
    </li>
    
    <li class="article-tag-list-item">
        <a class="color3">书签</a>
    </li>
    
    <li class="article-tag-list-item">
        <a class="color1">Nginx</a>
    </li>
    
    <li class="article-tag-list-item">
        <a class="color2">docker</a>
    </li>
    
    <li class="article-tag-list-item">
        <a class="color4">vue</a>
    </li>
    
    <li class="article-tag-list-item">
        <a class="color5">Yarn</a>
    </li>
    
    <li class="article-tag-list-item">
        <a class="color5">前端开发</a>
    </li>
    
    <li class="article-tag-list-item">
        <a class="color2">vscode</a>
    </li>
    
    <li class="article-tag-list-item">
        <a class="color2">eslint</a>
    </li>
    
    <li class="article-tag-list-item">
        <a class="color4">prettier</a>
    </li>
    
    <li class="article-tag-list-item">
        <a class="color4">Markdown</a>
    </li>
    
    <li class="article-tag-list-item">
        <a class="color5">hexo</a>
    </li>
    
    <li class="article-tag-list-item">
        <a class="color3">开源</a>
    </li>
    
    <li class="article-tag-list-item">
        <a class="color1">Maven</a>
    </li>
    
    <div class="clearfix"></div>
</div>

    
    <div id="local-search-result">

    </div>
    
    <nav id="title-list-nav">
        
        <a  class="Windows "
           href="/lrt_blog/2022/11/20/01Windows/Windows11%E4%BC%98%E5%8C%96%E9%85%8D%E7%BD%AE/"
           data-tag="windows,系统优化"
           data-author="" >
            <span class="post-title" title="Windows11优化配置">Windows11优化配置</span>
            <span class="post-date" title="2022-11-20 00:00:00">2022/11/20</span>
        </a>
        
        <a  class="存储 DM "
           href="/lrt_blog/2021/11/16/04%E5%AD%98%E5%82%A8/%E9%93%B6%E6%B2%B3%E9%BA%92%E9%BA%9F%E5%AE%89%E8%A3%85%E8%BE%BE%E6%A2%A6%E6%95%B0%E6%8D%AE%E5%BA%93/"
           data-tag="软件安装,DM"
           data-author="" >
            <span class="post-title" title="银河麒麟安装达梦数据库">银河麒麟安装达梦数据库</span>
            <span class="post-date" title="2021-11-16 00:00:00">2021/11/16</span>
        </a>
        
        <a  class="前端开发 Vue CLI "
           href="/lrt_blog/2021/02/02/66%E5%89%8D%E7%AB%AF%E5%BC%80%E5%8F%91/vue-cli%E5%88%9B%E5%BB%BA%E9%A1%B9%E7%9B%AE/"
           data-tag="教程,vue"
           data-author="" >
            <span class="post-title" title="Vue CLI创建项目">Vue CLI创建项目</span>
            <span class="post-date" title="2021-02-02 21:08:20">2021/02/02</span>
        </a>
        
        <a  class="前端开发 Eslint "
           href="/lrt_blog/2021/02/01/66%E5%89%8D%E7%AB%AF%E5%BC%80%E5%8F%91/vscode%E4%B8%8A%E9%85%8D%E7%BD%AEEslint-Prettier/"
           data-tag="前端开发,vscode,eslint,prettier"
           data-author="" >
            <span class="post-title" title="vscode上配置Eslint+Prettier">vscode上配置Eslint+Prettier</span>
            <span class="post-date" title="2021-02-01 00:00:00">2021/02/01</span>
        </a>
        
        <a  class="前端开发 Yarn "
           href="/lrt_blog/2021/01/31/66%E5%89%8D%E7%AB%AF%E5%BC%80%E5%8F%91/%E5%8C%85%E7%AE%A1%E7%90%86%E5%B7%A5%E5%85%B7yarn%E5%AE%89%E8%A3%85%E5%92%8C%E9%85%8D%E7%BD%AE/"
           data-tag="教程,Yarn"
           data-author="" >
            <span class="post-title" title="包管理工具yarn安装和配置">包管理工具yarn安装和配置</span>
            <span class="post-date" title="2021-01-31 17:37:05">2021/01/31</span>
        </a>
        
        <a  class="Web服务器 Nginx "
           href="/lrt_blog/2020/04/30/05web%E6%9C%8D%E5%8A%A1%E5%99%A8/Linux%E4%B8%8B%E5%AE%89%E8%A3%85Nginx%E6%9C%8D%E5%8A%A1/"
           data-tag="软件安装,Nginx"
           data-author="" >
            <span class="post-title" title="Linux下安装Nginx服务">Linux下安装Nginx服务</span>
            <span class="post-date" title="2020-04-30 10:10:58">2020/04/30</span>
        </a>
        
        <a  class="存储 MongoDB "
           href="/lrt_blog/2020/04/30/04%E5%AD%98%E5%82%A8/Linux%E4%B8%8B%E5%AE%89%E8%A3%85MongoDB%E6%9C%8D%E5%8A%A1/"
           data-tag="软件安装,MongoDB"
           data-author="" >
            <span class="post-title" title="Linux下安装MongoDB服务">Linux下安装MongoDB服务</span>
            <span class="post-date" title="2020-04-30 00:00:00">2020/04/30</span>
        </a>
        
        <a  class="存储 Redis "
           href="/lrt_blog/2020/04/30/04%E5%AD%98%E5%82%A8/Linux%E4%B8%8B%E5%AE%89%E8%A3%85Redis%E6%9C%8D%E5%8A%A1/"
           data-tag="软件安装,Redis"
           data-author="" >
            <span class="post-title" title="Linux下安装Redis服务">Linux下安装Redis服务</span>
            <span class="post-date" title="2020-04-30 00:00:00">2020/04/30</span>
        </a>
        
        <a  class="容器 Docker "
           href="/lrt_blog/2020/01/04/03%E5%AE%B9%E5%99%A8/docker%E7%A6%BB%E7%BA%BF%E5%AE%89%E8%A3%85/"
           data-tag="软件安装,docker"
           data-author="" >
            <span class="post-title" title="docker离线安装">docker离线安装</span>
            <span class="post-date" title="2020-01-04 00:00:00">2020/01/04</span>
        </a>
        
        <a  class="笔记 "
           href="/lrt_blog/2019/12/26/07Java/%E5%AD%A6%E4%B9%A0-%E4%B9%A6%E7%AD%BE/"
           data-tag="书签"
           data-author="" >
            <span class="post-title" title="学习-书签">学习-书签</span>
            <span class="post-date" title="2019-12-26 00:00:00">2019/12/26</span>
        </a>
        
        <a  class="开源 "
           href="/lrt_blog/2019/12/19/77%E5%85%B6%E4%BB%96%E5%B7%A5%E5%85%B7/%E5%9B%BD%E5%86%85%E5%BC%80%E6%BA%90%E9%95%9C%E5%83%8F%E7%AB%99%E7%82%B9/"
           data-tag="开源"
           data-author="" >
            <span class="post-title" title="国内开源镜像站点">国内开源镜像站点</span>
            <span class="post-date" title="2019-12-19 00:00:00">2019/12/19</span>
        </a>
        
        <a  class="存储 MySQL "
           href="/lrt_blog/2019/12/16/04%E5%AD%98%E5%82%A8/MySQL%20%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0/"
           data-tag="MySQL,学习笔记"
           data-author="" >
            <span class="post-title" title="MySQL 学习笔记">MySQL 学习笔记</span>
            <span class="post-date" title="2019-12-16 00:00:00">2019/12/16</span>
        </a>
        
        <a  class="存储 MySQL "
           href="/lrt_blog/2019/12/15/04%E5%AD%98%E5%82%A8/Linux%E7%8E%AF%E5%A2%83%E4%B8%8B%E5%AE%89%E8%A3%85MySQL%E6%9C%8D%E5%8A%A1/"
           data-tag="软件安装,MySQL"
           data-author="" >
            <span class="post-title" title="Linux环境下安装MySQL服务">Linux环境下安装MySQL服务</span>
            <span class="post-date" title="2019-12-15 00:00:00">2019/12/15</span>
        </a>
        
        <a  class="存储 Navicat "
           href="/lrt_blog/2019/12/15/04%E5%AD%98%E5%82%A8/Navicat%20Premium%2012%20%E7%A0%B4%E8%A7%A3/"
           data-tag="软件安装,navicat"
           data-author="" >
            <span class="post-title" title="Navicat Premium 12 破解">Navicat Premium 12 破解</span>
            <span class="post-date" title="2019-12-15 00:00:00">2019/12/15</span>
        </a>
        
        <a  class="存储 MySQL "
           href="/lrt_blog/2019/12/15/04%E5%AD%98%E5%82%A8/Windows%E7%8E%AF%E5%A2%83%E4%B8%8B%E5%AE%89%E8%A3%85MySQL%E6%9C%8D%E5%8A%A1/"
           data-tag="软件安装,MySQL"
           data-author="" >
            <span class="post-title" title="Windows环境下安装MySQL服务">Windows环境下安装MySQL服务</span>
            <span class="post-date" title="2019-12-15 00:00:00">2019/12/15</span>
        </a>
        
        <a  class="开发工具 SVN "
           href="/lrt_blog/2019/12/01/02%E5%BC%80%E5%8F%91%E5%B7%A5%E5%85%B7/Windows%E7%8E%AF%E5%A2%83%E4%B8%8B%E6%90%AD%E5%BB%BASVN%E6%9C%8D%E5%8A%A1%E5%99%A8/"
           data-tag="软件安装,svn"
           data-author="" >
            <span class="post-title" title="Windows环境下搭建SVN服务器">Windows环境下搭建SVN服务器</span>
            <span class="post-date" title="2019-12-01 00:00:00">2019/12/01</span>
        </a>
        
        <a  class="开发工具 Git "
           href="/lrt_blog/2019/11/30/02%E5%BC%80%E5%8F%91%E5%B7%A5%E5%85%B7/git%E9%97%AE%E9%A2%98%E9%9B%86%E9%94%A6/"
           data-tag="问题集锦,git"
           data-author="" >
            <span class="post-title" title="git问题集锦">git问题集锦</span>
            <span class="post-date" title="2019-11-30 00:00:00">2019/11/30</span>
        </a>
        
        <a  class="开发工具 Git "
           href="/lrt_blog/2019/11/30/02%E5%BC%80%E5%8F%91%E5%B7%A5%E5%85%B7/Git%20%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0/"
           data-tag="git"
           data-author="" >
            <span class="post-title" title="Git 学习笔记">Git 学习笔记</span>
            <span class="post-date" title="2019-11-30 00:00:00">2019/11/30</span>
        </a>
        
        <a  class="开发工具 jd-gui "
           href="/lrt_blog/2019/11/30/02%E5%BC%80%E5%8F%91%E5%B7%A5%E5%85%B7/jd-gui%E5%8F%8D%E7%BC%96%E8%AF%91jar%E5%90%8E%E6%B8%85%E9%99%A4%E5%90%8E%E9%9D%A2%E7%9A%84%E6%B3%A8%E9%87%8A%E4%BF%A1%E6%81%AF%E5%8F%8A%E8%A1%8C%E5%8F%B7/"
           data-tag="jd-gui,java,反编译"
           data-author="" >
            <span class="post-title" title="jd-gui反编译jar后清除后面的注释信息及行号">jd-gui反编译jar后清除后面的注释信息及行号</span>
            <span class="post-date" title="2019-11-30 00:00:00">2019/11/30</span>
        </a>
        
        <a  class="开发工具 Maven "
           href="/lrt_blog/2019/11/30/02%E5%BC%80%E5%8F%91%E5%B7%A5%E5%85%B7/Maven%20%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0/"
           data-tag="教程,Maven"
           data-author="" >
            <span class="post-title" title="Maven 学习笔记">Maven 学习笔记</span>
            <span class="post-date" title="2019-11-30 00:00:00">2019/11/30</span>
        </a>
        
        <a  class="Windows "
           href="/lrt_blog/2019/11/24/01Windows/Windows10%E4%BC%98%E5%8C%96%E9%85%8D%E7%BD%AE/"
           data-tag="windows,系统优化"
           data-author="" >
            <span class="post-title" title="Windows10优化配置">Windows10优化配置</span>
            <span class="post-date" title="2019-11-24 00:00:00">2019/11/24</span>
        </a>
        
        <a  class="Windows "
           href="/lrt_blog/2019/11/24/01Windows/Windows10%E5%8F%96%E6%B6%88%E8%87%AA%E5%8A%A8%E6%9B%B4%E6%96%B0/"
           data-tag="windows,系统优化"
           data-author="" >
            <span class="post-title" title="Windows10取消自动更新">Windows10取消自动更新</span>
            <span class="post-date" title="2019-11-24 00:00:00">2019/11/24</span>
        </a>
        
        <a  class="Linux CentOS "
           href="/lrt_blog/2019/11/23/01Linux/CentOS%20yum%E5%91%BD%E4%BB%A4/"
           data-tag="教程,centos"
           data-author="" >
            <span class="post-title" title="yum命令">yum命令</span>
            <span class="post-date" title="2019-11-23 00:00:00">2019/11/23</span>
        </a>
        
        <a  class="Linux Ubuntu "
           href="/lrt_blog/2019/11/23/01Linux/sudo%E7%9B%B8%E5%85%B3%E6%93%8D%E4%BD%9C/"
           data-tag="教程,linux"
           data-author="" >
            <span class="post-title" title="sudo相关操作">sudo相关操作</span>
            <span class="post-date" title="2019-11-23 00:00:00">2019/11/23</span>
        </a>
        
        <a  class="Linux CentOS "
           href="/lrt_blog/2019/11/23/01Linux/CentOS%20%E6%97%B6%E5%8C%BA%E9%97%AE%E9%A2%98/"
           data-tag="centos,问题集锦"
           data-author="" >
            <span class="post-title" title="CentOS时区问题">CentOS时区问题</span>
            <span class="post-date" title="2019-11-23 00:00:00">2019/11/23</span>
        </a>
        
        <a  class="Linux "
           href="/lrt_blog/2019/11/23/01Linux/Linux%E5%B8%B8%E7%94%A8%E5%91%BD%E4%BB%A4/"
           data-tag="教程,linux"
           data-author="" >
            <span class="post-title" title="Linux常用命令">Linux常用命令</span>
            <span class="post-date" title="2019-11-23 00:00:00">2019/11/23</span>
        </a>
        
        <a  class="Linux CentOS "
           href="/lrt_blog/2019/11/23/01Linux/CentOS%20%E8%AE%BE%E7%BD%AE%E9%98%B2%E7%81%AB%E5%A2%99%E6%93%8D%E4%BD%9C%E3%80%81%E5%BC%80%E6%94%BE%E6%8C%87%E5%AE%9A%E7%AB%AF%E5%8F%A3%E6%93%8D%E4%BD%9C/"
           data-tag="centos,防火墙"
           data-author="" >
            <span class="post-title" title="CentOS设置防火墙操作、开放指定端口操作">CentOS设置防火墙操作、开放指定端口操作</span>
            <span class="post-date" title="2019-11-23 00:00:00">2019/11/23</span>
        </a>
        
        <a  class="Linux Ubuntu "
           href="/lrt_blog/2019/11/23/01Linux/ubuntu%20root%E7%94%A8%E6%88%B7%E5%91%BD%E4%BB%A4%E8%A1%A5%E5%85%A8/"
           data-tag="ubuntu"
           data-author="" >
            <span class="post-title" title="ubuntu root用户命令补全">ubuntu root用户命令补全</span>
            <span class="post-date" title="2019-11-23 00:00:00">2019/11/23</span>
        </a>
        
        <a  class="Linux "
           href="/lrt_blog/2019/11/17/01Linux/%E9%85%8D%E7%BD%AEip+yum%E6%88%96apt%E6%BA%90/"
           data-tag="教程,linux"
           data-author="" >
            <span class="post-title" title="配置ip+yum或apt源">配置ip+yum或apt源</span>
            <span class="post-date" title="2019-11-17 00:00:00">2019/11/17</span>
        </a>
        
        <a  class="Linux "
           href="/lrt_blog/2019/11/16/01Linux/%E8%99%9A%E6%8B%9F%E6%9C%BA%E4%B8%AD%E5%AE%89%E8%A3%85centos7.6%E6%95%99%E7%A8%8B/"
           data-tag="centos,软件安装"
           data-author="" >
            <span class="post-title" title="虚拟机中安装centos7.6教程">虚拟机中安装centos7.6教程</span>
            <span class="post-date" title="2019-11-16 00:00:00">2019/11/16</span>
        </a>
        
        <a  class="Linux "
           href="/lrt_blog/2019/11/16/01Linux/%E8%99%9A%E6%8B%9F%E6%9C%BA%E4%B8%AD%E5%AE%89%E8%A3%85ubuntu16.04.06%E6%95%99%E7%A8%8B/"
           data-tag="软件安装,ubuntu"
           data-author="" >
            <span class="post-title" title="虚拟机中安装ubuntu16.04.06教程">虚拟机中安装ubuntu16.04.06教程</span>
            <span class="post-date" title="2019-11-16 00:00:00">2019/11/16</span>
        </a>
        
        <a  class="工具 hexo "
           href="/lrt_blog/2019/11/14/77%E5%85%B6%E4%BB%96%E5%B7%A5%E5%85%B7/%E4%BD%BF%E7%94%A8Gitee+Hexo%E6%90%AD%E5%BB%BA%E4%B8%AA%E4%BA%BA%E5%8D%9A%E5%AE%A2/"
           data-tag="教程,hexo"
           data-author="" >
            <span class="post-title" title="使用Gitee+Hexo搭建个人博客">使用Gitee+Hexo搭建个人博客</span>
            <span class="post-date" title="2019-11-14 00:00:00">2019/11/14</span>
        </a>
        
        <a  class="开发工具 Markdown "
           href="/lrt_blog/2019/11/11/77%E5%85%B6%E4%BB%96%E5%B7%A5%E5%85%B7/Markdown%20%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0/"
           data-tag="教程,Markdown"
           data-author="" >
            <span class="post-title" title="Markdown 学习笔记">Markdown 学习笔记</span>
            <span class="post-date" title="2019-11-11 00:00:00">2019/11/11</span>
        </a>
        
    </nav>
</div>
    </div>
    <div class="hide-list">
        <div class="semicircle">
            <div class="brackets first"><</div>
            <div class="brackets">&gt;</div>
        </div>
    </div>
</aside>
<div class="post">
    <div class="pjax">
        <article id="post-02开发工具/Maven 学习笔记" class="article article-type-post" itemscope itemprop="blogPost">
    
        <h1 class="article-title">Maven 学习笔记</h1>
    
    <div class="article-meta">
        
        
        
        <span class="book">
            
                <a data-rel="开发工具">开发工具</a>/
            
                <a data-rel="Maven">Maven</a>
            
        </span>
        
        
        <span class="tag">
            
            <a class="color3">教程</a>
            
            <a class="color1">Maven</a>
            
        </span>
        
    </div>
    <div class="article-meta">
        
        创建时间:<time class="date" title='更新时间: 2022-11-20 16:34:04'>2019-11-30 00:00</time>
        
    </div>
    <div class="article-meta">
        
        <span>字数:14k</span>
        
        
        <span id="busuanzi_container_page_pv">
            阅读:<span id="busuanzi_value_page_pv">
                <span class="count-comment">
                    <span class="spinner">
                      <div class="cube1"></div>
                      <div class="cube2"></div>
                    </span>
                </span>
            </span>
        </span>
        
        
        <span class="top-comment" title="跳转至评论区">
            <a href="#comments">
                评论:<span class="count-comment">
                    <span class="spinner">
                      <div class="cube1"></div>
                      <div class="cube2"></div>
                    </span>
                </span>
            </a>
        </span>
        
    </div>
    
    <div class="toc-ref">
    
        <ol class="toc"><li class="toc-item toc-level-1"><a class="toc-link" href="#约定配置"><span class="toc-text">约定配置</span></a></li><li class="toc-item toc-level-1"><a class="toc-link" href="#Maven-环境配置"><span class="toc-text">Maven 环境配置</span></a></li><li class="toc-item toc-level-1"><a class="toc-link" href="#Maven-POM"><span class="toc-text">Maven POM</span></a><ol class="toc-child"><li class="toc-item toc-level-2"><a class="toc-link" href="#父（Super）POM"><span class="toc-text">父（Super）POM</span></a></li></ol></li><li class="toc-item toc-level-1"><a class="toc-link" href="#POM-标签大全详解"><span class="toc-text">POM 标签大全详解</span></a></li><li class="toc-item toc-level-1"><a class="toc-link" href="#Maven-配置文件"><span class="toc-text">Maven 配置文件</span></a><ol class="toc-child"><li class="toc-item toc-level-2"><a class="toc-link" href="#配置文件的类型"><span class="toc-text">配置文件的类型</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#配置文件详解"><span class="toc-text">配置文件详解</span></a></li></ol></li><li class="toc-item toc-level-1"><a class="toc-link" href="#Maven中的配置文件密码加密机制"><span class="toc-text">Maven中的配置文件密码加密机制</span></a></li><li class="toc-item toc-level-1"><a class="toc-link" href="#搭建Maven私服-Nexus"><span class="toc-text">搭建Maven私服-Nexus</span></a><ol class="toc-child"><li class="toc-item toc-level-2"><a class="toc-link" href="#Nexus下载与安装"><span class="toc-text">Nexus下载与安装</span></a><ol class="toc-child"><li class="toc-item toc-level-3"><a class="toc-link" href="#修改Nexus默认端口号"><span class="toc-text">修改Nexus默认端口号</span></a></li><li class="toc-item toc-level-3"><a class="toc-link" href="#安装Nexus"><span class="toc-text">安装Nexus</span></a></li></ol></li><li class="toc-item toc-level-2"><a class="toc-link" href="#Nexus配置"><span class="toc-text">Nexus配置</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#项目maven配置"><span class="toc-text">项目maven配置</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#maven打包插件"><span class="toc-text">maven打包插件</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#nexus权限配置"><span class="toc-text">nexus权限配置</span></a><ol class="toc-child"><li class="toc-item toc-level-3"><a class="toc-link" href="#取消允许匿名用户访问"><span class="toc-text">取消允许匿名用户访问</span></a></li><li class="toc-item toc-level-3"><a class="toc-link" href="#配置Roles权限"><span class="toc-text">配置Roles权限</span></a></li><li class="toc-item toc-level-3"><a class="toc-link" href="#配置用户"><span class="toc-text">配置用户</span></a></li></ol></li></ol></li></ol>
    
<style>
    .left-col .switch-btn,
    .left-col .switch-area {
        display: none;
    }
    .toc-level-3 i,
    .toc-level-3 ol {
        display: none !important;
    }
</style>
</div>
    
    <div class="article-entry" itemprop="articleBody">
      
        <p><div class='inner-toc'><h2>目录</h2><ol class="toc"><li class="toc-item toc-level-1"><a class="toc-link" href="#约定配置"><span class="toc-text">约定配置</span></a></li><li class="toc-item toc-level-1"><a class="toc-link" href="#Maven-环境配置"><span class="toc-text">Maven 环境配置</span></a></li><li class="toc-item toc-level-1"><a class="toc-link" href="#Maven-POM"><span class="toc-text">Maven POM</span></a><ol class="toc-child"><li class="toc-item toc-level-2"><a class="toc-link" href="#父（Super）POM"><span class="toc-text">父（Super）POM</span></a></li></ol></li><li class="toc-item toc-level-1"><a class="toc-link" href="#POM-标签大全详解"><span class="toc-text">POM 标签大全详解</span></a></li><li class="toc-item toc-level-1"><a class="toc-link" href="#Maven-配置文件"><span class="toc-text">Maven 配置文件</span></a><ol class="toc-child"><li class="toc-item toc-level-2"><a class="toc-link" href="#配置文件的类型"><span class="toc-text">配置文件的类型</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#配置文件详解"><span class="toc-text">配置文件详解</span></a></li></ol></li><li class="toc-item toc-level-1"><a class="toc-link" href="#Maven中的配置文件密码加密机制"><span class="toc-text">Maven中的配置文件密码加密机制</span></a></li><li class="toc-item toc-level-1"><a class="toc-link" href="#搭建Maven私服-Nexus"><span class="toc-text">搭建Maven私服-Nexus</span></a><ol class="toc-child"><li class="toc-item toc-level-2"><a class="toc-link" href="#Nexus下载与安装"><span class="toc-text">Nexus下载与安装</span></a><ol class="toc-child"><li class="toc-item toc-level-3"><a class="toc-link" href="#修改Nexus默认端口号"><span class="toc-text">修改Nexus默认端口号</span></a></li><li class="toc-item toc-level-3"><a class="toc-link" href="#安装Nexus"><span class="toc-text">安装Nexus</span></a></li></ol></li><li class="toc-item toc-level-2"><a class="toc-link" href="#Nexus配置"><span class="toc-text">Nexus配置</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#项目maven配置"><span class="toc-text">项目maven配置</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#maven打包插件"><span class="toc-text">maven打包插件</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#nexus权限配置"><span class="toc-text">nexus权限配置</span></a><ol class="toc-child"><li class="toc-item toc-level-3"><a class="toc-link" href="#取消允许匿名用户访问"><span class="toc-text">取消允许匿名用户访问</span></a></li><li class="toc-item toc-level-3"><a class="toc-link" href="#配置Roles权限"><span class="toc-text">配置Roles权限</span></a></li><li class="toc-item toc-level-3"><a class="toc-link" href="#配置用户"><span class="toc-text">配置用户</span></a></li></ol></li></ol></li></ol></div></p>
<h1 id="约定配置"><a href="#约定配置" class="headerlink" title="约定配置"></a>约定配置</h1><p>Maven 提倡使用一个共同的标准目录结构，Maven 使用约定优于配置的原则，大家尽可能的遵守这样的目录结构。如下所示：</p>
<table>
<thead>
<tr>
<th align="left">目录</th>
<th align="left">目的</th>
</tr>
</thead>
<tbody><tr>
<td align="left">${basedir}</td>
<td align="left">存放pom.xml和所有的子目录</td>
</tr>
<tr>
<td align="left">${basedir}/src/main/java</td>
<td align="left">项目的java源代码</td>
</tr>
<tr>
<td align="left">${basedir}/src/main/resources</td>
<td align="left">项目的资源，比如说property文件，springmvc.xml</td>
</tr>
<tr>
<td align="left">${basedir}/src/test/java</td>
<td align="left">项目的测试类，比如说Junit代码</td>
</tr>
<tr>
<td align="left">${basedir}/src/test/resources</td>
<td align="left">测试用的资源</td>
</tr>
<tr>
<td align="left">${basedir}/src/main/webapp/WEB-INF</td>
<td align="left">web应用文件目录，web项目的信息，比如存放web.xml、本地图片、jsp视图页面</td>
</tr>
<tr>
<td align="left">${basedir}/target</td>
<td align="left">打包输出目录</td>
</tr>
<tr>
<td align="left">${basedir}/target/classes</td>
<td align="left">编译输出目录</td>
</tr>
<tr>
<td align="left">${basedir}/target/test-classes</td>
<td align="left">测试编译输出目录</td>
</tr>
<tr>
<td align="left">Test.java</td>
<td align="left">Maven只会自动运行符合该命名规则的测试类</td>
</tr>
<tr>
<td align="left">~/.m2/repository</td>
<td align="left">Maven默认的本地仓库目录位置</td>
</tr>
</tbody></table>
<h1 id="Maven-环境配置"><a href="#Maven-环境配置" class="headerlink" title="Maven 环境配置"></a>Maven 环境配置</h1><p>Maven 是一个基于 Java 的工具，所以要做的第一件事情就是安装 JDK。 </p>
<p>Maven <a href="https://mirrors.huaweicloud.com/apache/maven/maven-3/3.3.9/binaries/" target="_blank" rel="noopener">下载</a>，选择对应平台下载，解压， 添加环境变量 MAVEN_HOME： 值是解压后的文件夹目录</p>
<h1 id="Maven-POM"><a href="#Maven-POM" class="headerlink" title="Maven POM"></a>Maven POM</h1><p>POM( Project Object Model，项目对象模型 ) 是 Maven 工程的基本工作单元，是一个XML文件，包含了项目的基本信息，用于描述项目如何构建，声明项目依赖，等等。</p>
<p>执行任务或目标时，Maven 会在当前目录中查找 POM。它读取 POM，获取所需的配置信息，然后执行目标。</p>
<p>POM 中可以指定以下配置：</p>
<ul>
<li>项目依赖</li>
<li>插件</li>
<li>执行目标</li>
<li>项目构建 profile</li>
<li>项目版本</li>
<li>项目开发者列表</li>
<li>相关邮件列表信息</li>
</ul>
<p>在创建 POM 之前，我们首先需要描述项目组 (groupId), 项目的唯一ID。</p>
<pre><code class="xml">&lt;project xmlns = &quot;http://maven.apache.org/POM/4.0.0&quot;
    xmlns:xsi = &quot;http://www.w3.org/2001/XMLSchema-instance&quot;
    xsi:schemaLocation = &quot;http://maven.apache.org/POM/4.0.0
    http://maven.apache.org/xsd/maven-4.0.0.xsd&quot;&gt;

    &lt;!-- 模型版本 --&gt;
    &lt;modelVersion&gt;4.0.0&lt;/modelVersion&gt;
    &lt;!-- 公司或者组织的唯一标志，并且配置时生成的路径也是由此生成， 如com.companyname.project-group，maven会将该项目打成的jar包放本地路径：/com/companyname/project-group --&gt;
    &lt;groupId&gt;com.companyname.project-group&lt;/groupId&gt;

    &lt;!-- 项目的唯一ID，一个groupId下面可能多个项目，就是靠artifactId来区分的 --&gt;
    &lt;artifactId&gt;project&lt;/artifactId&gt;

    &lt;!-- 版本号 --&gt;
    &lt;version&gt;1.0.0&lt;/version&gt;
&lt;/project&gt;</code></pre>
<p>所有 POM 文件都需要 project 元素和三个必需字段：groupId，artifactId，version。</p>
<table>
<thead>
<tr>
<th align="left">节点</th>
<th align="left">描述</th>
</tr>
</thead>
<tbody><tr>
<td align="left">project</td>
<td align="left">工程的根标签。</td>
</tr>
<tr>
<td align="left">modelVersion</td>
<td align="left">模型版本需要设置为 4.0。</td>
</tr>
<tr>
<td align="left">groupId</td>
<td align="left">这是工程组的标识。它在一个组织或者项目中通常是唯一的。例如，一个银行组织 com.companyname.project-group 拥有所有的和银行相关的项目。</td>
</tr>
<tr>
<td align="left">artifactId</td>
<td align="left">这是工程的标识。它通常是工程的名称。例如，消费者银行。groupId 和 artifactId 一起定义了 artifact 在仓库中的位置。</td>
</tr>
<tr>
<td align="left">version</td>
<td align="left">这是工程的版本号。在 artifact 的仓库中，它用来区分不同的版本。例如：<code>com.company.bank:consumer-banking:1.0.0 com.company.bank:consumer-banking:1.1.0</code></td>
</tr>
</tbody></table>
<h2 id="父（Super）POM"><a href="#父（Super）POM" class="headerlink" title="父（Super）POM"></a>父（Super）POM</h2><p>父（Super）POM是 Maven 默认的 POM。所有的 POM 都继承自一个父 POM（无论是否显式定义了这个父 POM）。父 POM 包含了一些可以被继承的默认设置。因此，当 Maven 发现需要下载 POM 中的 依赖时，它会到 Super POM 中配置的默认仓库 <a href="http://repo1.maven.org/maven2" target="_blank" rel="noopener">http://repo1.maven.org/maven2</a> 去下载。</p>
<p>Maven 使用 effective pom（Super pom 加上工程自己的配置）来执行相关的目标，它帮助开发者在 pom.xml 中做尽可能少的配置，当然这些配置可以被重写。</p>
<p>使用以下命令来查看 Super POM 默认配置：</p>
<pre><code class="bash">mvn help:effective-pom</code></pre>
<h1 id="POM-标签大全详解"><a href="#POM-标签大全详解" class="headerlink" title="POM 标签大全详解"></a>POM 标签大全详解</h1><pre><code class="xml">&lt;project xmlns=&quot;http://maven.apache.org/POM/4.0.0&quot; xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot;
    xsi:schemaLocation=&quot;http://maven.apache.org/POM/4.0.0http://maven.apache.org/maven-v4_0_0.xsd&quot;&gt;
    &lt;!--父项目的坐标。如果项目中没有规定某个元素的值，那么父项目中的对应值即为项目的默认值。 坐标包括group ID，artifact ID和 
        version。 --&gt;
    &lt;parent&gt;
        &lt;!--被继承的父项目的构件标识符 --&gt;
        &lt;artifactId /&gt;
        &lt;!--被继承的父项目的全球唯一标识符 --&gt;
        &lt;groupId /&gt;
        &lt;!--被继承的父项目的版本 --&gt;
        &lt;version /&gt;
        &lt;!-- 父项目的pom.xml文件的相对路径。相对路径允许你选择一个不同的路径。默认值是../pom.xml。Maven首先在构建当前项目的地方寻找父项 
            目的pom，其次在文件系统的这个位置（relativePath位置），然后在本地仓库，最后在远程仓库寻找父项目的pom。 --&gt;
        &lt;relativePath /&gt;
    &lt;/parent&gt;
    &lt;!--声明项目描述符遵循哪一个POM模型版本。模型本身的版本很少改变，虽然如此，但它仍然是必不可少的，这是为了当Maven引入了新的特性或者其他模型变更的时候，确保稳定性。 --&gt;
    &lt;modelVersion&gt;4.0.0&lt;/modelVersion&gt;
    &lt;!--项目的全球唯一标识符，通常使用全限定的包名区分该项目和其他项目。并且构建时生成的路径也是由此生成， 如com.mycompany.app生成的相对路径为：/com/mycompany/app --&gt;
    &lt;groupId&gt;asia.banseon&lt;/groupId&gt;
    &lt;!-- 构件的标识符，它和group ID一起唯一标识一个构件。换句话说，你不能有两个不同的项目拥有同样的artifact ID和groupID；在某个 
        特定的group ID下，artifact ID也必须是唯一的。构件是项目产生的或使用的一个东西，Maven为项目产生的构件包括：JARs，源 码，二进制发布和WARs等。 --&gt;
    &lt;artifactId&gt;banseon-maven2&lt;/artifactId&gt;
    &lt;!--项目产生的构件类型，例如jar、war、ear、pom。插件可以创建他们自己的构件类型，所以前面列的不是全部构件类型 --&gt;
    &lt;packaging&gt;jar&lt;/packaging&gt;
    &lt;!--项目当前版本，格式为:主版本.次版本.增量版本-限定版本号 --&gt;
    &lt;version&gt;1.0-SNAPSHOT&lt;/version&gt;
    &lt;!--项目的名称, Maven产生的文档用 --&gt;
    &lt;name&gt;banseon-maven&lt;/name&gt;
    &lt;!--项目主页的URL, Maven产生的文档用 --&gt;
    &lt;url&gt;http://www.baidu.com/banseon&lt;/url&gt;
    &lt;!-- 项目的详细描述, Maven 产生的文档用。 当这个元素能够用HTML格式描述时（例如，CDATA中的文本会被解析器忽略，就可以包含HTML标 
        签）， 不鼓励使用纯文本描述。如果你需要修改产生的web站点的索引页面，你应该修改你自己的索引页文件，而不是调整这里的文档。 --&gt;
    &lt;description&gt;A maven project to study maven.&lt;/description&gt;
    &lt;!--描述了这个项目构建环境中的前提条件。 --&gt;
    &lt;prerequisites&gt;
        &lt;!--构建该项目或使用该插件所需要的Maven的最低版本 --&gt;
        &lt;maven /&gt;
    &lt;/prerequisites&gt;
    &lt;!--项目的问题管理系统(Bugzilla, Jira, Scarab,或任何你喜欢的问题管理系统)的名称和URL，本例为 jira --&gt;
    &lt;issueManagement&gt;
        &lt;!--问题管理系统（例如jira）的名字， --&gt;
        &lt;system&gt;jira&lt;/system&gt;
        &lt;!--该项目使用的问题管理系统的URL --&gt;
        &lt;url&gt;http://jira.baidu.com/banseon&lt;/url&gt;
    &lt;/issueManagement&gt;
    &lt;!--项目持续集成信息 --&gt;
    &lt;ciManagement&gt;
        &lt;!--持续集成系统的名字，例如continuum --&gt;
        &lt;system /&gt;
        &lt;!--该项目使用的持续集成系统的URL（如果持续集成系统有web接口的话）。 --&gt;
        &lt;url /&gt;
        &lt;!--构建完成时，需要通知的开发者/用户的配置项。包括被通知者信息和通知条件（错误，失败，成功，警告） --&gt;
        &lt;notifiers&gt;
            &lt;!--配置一种方式，当构建中断时，以该方式通知用户/开发者 --&gt;
            &lt;notifier&gt;
                &lt;!--传送通知的途径 --&gt;
                &lt;type /&gt;
                &lt;!--发生错误时是否通知 --&gt;
                &lt;sendOnError /&gt;
                &lt;!--构建失败时是否通知 --&gt;
                &lt;sendOnFailure /&gt;
                &lt;!--构建成功时是否通知 --&gt;
                &lt;sendOnSuccess /&gt;
                &lt;!--发生警告时是否通知 --&gt;
                &lt;sendOnWarning /&gt;
                &lt;!--不赞成使用。通知发送到哪里 --&gt;
                &lt;address /&gt;
                &lt;!--扩展配置项 --&gt;
                &lt;configuration /&gt;
            &lt;/notifier&gt;
        &lt;/notifiers&gt;
    &lt;/ciManagement&gt;
    &lt;!--项目创建年份，4位数字。当产生版权信息时需要使用这个值。 --&gt;
    &lt;inceptionYear /&gt;
    &lt;!--项目相关邮件列表信息 --&gt;
    &lt;mailingLists&gt;
        &lt;!--该元素描述了项目相关的所有邮件列表。自动产生的网站引用这些信息。 --&gt;
        &lt;mailingList&gt;
            &lt;!--邮件的名称 --&gt;
            &lt;name&gt;Demo&lt;/name&gt;
            &lt;!--发送邮件的地址或链接，如果是邮件地址，创建文档时，mailto: 链接会被自动创建 --&gt;
            &lt;post&gt;banseon@126.com&lt;/post&gt;
            &lt;!--订阅邮件的地址或链接，如果是邮件地址，创建文档时，mailto: 链接会被自动创建 --&gt;
            &lt;subscribe&gt;banseon@126.com&lt;/subscribe&gt;
            &lt;!--取消订阅邮件的地址或链接，如果是邮件地址，创建文档时，mailto: 链接会被自动创建 --&gt;
            &lt;unsubscribe&gt;banseon@126.com&lt;/unsubscribe&gt;
            &lt;!--你可以浏览邮件信息的URL --&gt;
            &lt;archive&gt;http:/hi.baidu.com/banseon/demo/dev/&lt;/archive&gt;
        &lt;/mailingList&gt;
    &lt;/mailingLists&gt;
    &lt;!--项目开发者列表 --&gt;
    &lt;developers&gt;
        &lt;!--某个项目开发者的信息 --&gt;
        &lt;developer&gt;
            &lt;!--SCM里项目开发者的唯一标识符 --&gt;
            &lt;id&gt;HELLO WORLD&lt;/id&gt;
            &lt;!--项目开发者的全名 --&gt;
            &lt;name&gt;banseon&lt;/name&gt;
            &lt;!--项目开发者的email --&gt;
            &lt;email&gt;banseon@126.com&lt;/email&gt;
            &lt;!--项目开发者的主页的URL --&gt;
            &lt;url /&gt;
            &lt;!--项目开发者在项目中扮演的角色，角色元素描述了各种角色 --&gt;
            &lt;roles&gt;
                &lt;role&gt;Project Manager&lt;/role&gt;
                &lt;role&gt;Architect&lt;/role&gt;
            &lt;/roles&gt;
            &lt;!--项目开发者所属组织 --&gt;
            &lt;organization&gt;demo&lt;/organization&gt;
            &lt;!--项目开发者所属组织的URL --&gt;
            &lt;organizationUrl&gt;http://hi.baidu.com/banseon&lt;/organizationUrl&gt;
            &lt;!--项目开发者属性，如即时消息如何处理等 --&gt;
            &lt;properties&gt;
                &lt;dept&gt;No&lt;/dept&gt;
            &lt;/properties&gt;
            &lt;!--项目开发者所在时区， -11到12范围内的整数。 --&gt;
            &lt;timezone&gt;-5&lt;/timezone&gt;
        &lt;/developer&gt;
    &lt;/developers&gt;
    &lt;!--项目的其他贡献者列表 --&gt;
    &lt;contributors&gt;
        &lt;!--项目的其他贡献者。参见developers/developer元素 --&gt;
        &lt;contributor&gt;
            &lt;name /&gt;
            &lt;email /&gt;
            &lt;url /&gt;
            &lt;organization /&gt;
            &lt;organizationUrl /&gt;
            &lt;roles /&gt;
            &lt;timezone /&gt;
            &lt;properties /&gt;
        &lt;/contributor&gt;
    &lt;/contributors&gt;
    &lt;!--该元素描述了项目所有License列表。 应该只列出该项目的license列表，不要列出依赖项目的 license列表。如果列出多个license，用户可以选择它们中的一个而不是接受所有license。 --&gt;
    &lt;licenses&gt;
        &lt;!--描述了项目的license，用于生成项目的web站点的license页面，其他一些报表和validation也会用到该元素。 --&gt;
        &lt;license&gt;
            &lt;!--license用于法律上的名称 --&gt;
            &lt;name&gt;Apache 2&lt;/name&gt;
            &lt;!--官方的license正文页面的URL --&gt;
            &lt;url&gt;http://www.baidu.com/banseon/LICENSE-2.0.txt&lt;/url&gt;
            &lt;!--项目分发的主要方式： repo，可以从Maven库下载 manual， 用户必须手动下载和安装依赖 --&gt;
            &lt;distribution&gt;repo&lt;/distribution&gt;
            &lt;!--关于license的补充信息 --&gt;
            &lt;comments&gt;A business-friendly OSS license&lt;/comments&gt;
        &lt;/license&gt;
    &lt;/licenses&gt;
    &lt;!--SCM(Source Control Management)标签允许你配置你的代码库，供Maven web站点和其它插件使用。 --&gt;
    &lt;scm&gt;
        &lt;!--SCM的URL,该URL描述了版本库和如何连接到版本库。欲知详情，请看SCMs提供的URL格式和列表。该连接只读。 --&gt;
        &lt;connection&gt;
            scm:svn:http://svn.baidu.com/banseon/maven/banseon/banseon-maven2-trunk(dao-trunk)
        &lt;/connection&gt;
        &lt;!--给开发者使用的，类似connection元素。即该连接不仅仅只读 --&gt;
        &lt;developerConnection&gt;
            scm:svn:http://svn.baidu.com/banseon/maven/banseon/dao-trunk
        &lt;/developerConnection&gt;
        &lt;!--当前代码的标签，在开发阶段默认为HEAD --&gt;
        &lt;tag /&gt;
        &lt;!--指向项目的可浏览SCM库（例如ViewVC或者Fisheye）的URL。 --&gt;
        &lt;url&gt;http://svn.baidu.com/banseon&lt;/url&gt;
    &lt;/scm&gt;
    &lt;!--描述项目所属组织的各种属性。Maven产生的文档用 --&gt;
    &lt;organization&gt;
        &lt;!--组织的全名 --&gt;
        &lt;name&gt;demo&lt;/name&gt;
        &lt;!--组织主页的URL --&gt;
        &lt;url&gt;http://www.baidu.com/banseon&lt;/url&gt;
    &lt;/organization&gt;
    &lt;!--构建项目需要的信息 --&gt;
    &lt;build&gt;
        &lt;!--该元素设置了项目源码目录，当构建项目的时候，构建系统会编译目录里的源码。该路径是相对于pom.xml的相对路径。 --&gt;
        &lt;sourceDirectory /&gt;
        &lt;!--该元素设置了项目脚本源码目录，该目录和源码目录不同：绝大多数情况下，该目录下的内容 会被拷贝到输出目录(因为脚本是被解释的，而不是被编译的)。 --&gt;
        &lt;scriptSourceDirectory /&gt;
        &lt;!--该元素设置了项目单元测试使用的源码目录，当测试项目的时候，构建系统会编译目录里的源码。该路径是相对于pom.xml的相对路径。 --&gt;
        &lt;testSourceDirectory /&gt;
        &lt;!--被编译过的应用程序class文件存放的目录。 --&gt;
        &lt;outputDirectory /&gt;
        &lt;!--被编译过的测试class文件存放的目录。 --&gt;
        &lt;testOutputDirectory /&gt;
        &lt;!--使用来自该项目的一系列构建扩展 --&gt;
        &lt;extensions&gt;
            &lt;!--描述使用到的构建扩展。 --&gt;
            &lt;extension&gt;
                &lt;!--构建扩展的groupId --&gt;
                &lt;groupId /&gt;
                &lt;!--构建扩展的artifactId --&gt;
                &lt;artifactId /&gt;
                &lt;!--构建扩展的版本 --&gt;
                &lt;version /&gt;
            &lt;/extension&gt;
        &lt;/extensions&gt;
        &lt;!--当项目没有规定目标（Maven2 叫做阶段）时的默认值 --&gt;
        &lt;defaultGoal /&gt;
        &lt;!--这个元素描述了项目相关的所有资源路径列表，例如和项目相关的属性文件，这些资源被包含在最终的打包文件里。 --&gt;
        &lt;resources&gt;
            &lt;!--这个元素描述了项目相关或测试相关的所有资源路径 --&gt;
            &lt;resource&gt;
                &lt;!-- 描述了资源的目标路径。该路径相对target/classes目录（例如${project.build.outputDirectory}）。举个例 
                    子，如果你想资源在特定的包里(org.apache.maven.messages)，你就必须该元素设置为org/apache/maven /messages。然而，如果你只是想把资源放到源码目录结构里，就不需要该配置。 --&gt;
                &lt;targetPath /&gt;
                &lt;!--是否使用参数值代替参数名。参数值取自properties元素或者文件里配置的属性，文件在filters元素里列出。 --&gt;
                &lt;filtering /&gt;
                &lt;!--描述存放资源的目录，该路径相对POM路径 --&gt;
                &lt;directory /&gt;
                &lt;!--包含的模式列表，例如**/*.xml. --&gt;
                &lt;includes /&gt;
                &lt;!--排除的模式列表，例如**/*.xml --&gt;
                &lt;excludes /&gt;
            &lt;/resource&gt;
        &lt;/resources&gt;
        &lt;!--这个元素描述了单元测试相关的所有资源路径，例如和单元测试相关的属性文件。 --&gt;
        &lt;testResources&gt;
            &lt;!--这个元素描述了测试相关的所有资源路径，参见build/resources/resource元素的说明 --&gt;
            &lt;testResource&gt;
                &lt;targetPath /&gt;
                &lt;filtering /&gt;
                &lt;directory /&gt;
                &lt;includes /&gt;
                &lt;excludes /&gt;
            &lt;/testResource&gt;
        &lt;/testResources&gt;
        &lt;!--构建产生的所有文件存放的目录 --&gt;
        &lt;directory /&gt;
        &lt;!--产生的构件的文件名，默认值是${artifactId}-${version}。 --&gt;
        &lt;finalName /&gt;
        &lt;!--当filtering开关打开时，使用到的过滤器属性文件列表 --&gt;
        &lt;filters /&gt;
        &lt;!--子项目可以引用的默认插件信息。该插件配置项直到被引用时才会被解析或绑定到生命周期。给定插件的任何本地配置都会覆盖这里的配置 --&gt;
        &lt;pluginManagement&gt;
            &lt;!--使用的插件列表 。 --&gt;
            &lt;plugins&gt;
                &lt;!--plugin元素包含描述插件所需要的信息。 --&gt;
                &lt;plugin&gt;
                    &lt;!--插件在仓库里的group ID --&gt;
                    &lt;groupId /&gt;
                    &lt;!--插件在仓库里的artifact ID --&gt;
                    &lt;artifactId /&gt;
                    &lt;!--被使用的插件的版本（或版本范围） --&gt;
                    &lt;version /&gt;
                    &lt;!--是否从该插件下载Maven扩展（例如打包和类型处理器），由于性能原因，只有在真需要下载时，该元素才被设置成enabled。 --&gt;
                    &lt;extensions /&gt;
                    &lt;!--在构建生命周期中执行一组目标的配置。每个目标可能有不同的配置。 --&gt;
                    &lt;executions&gt;
                        &lt;!--execution元素包含了插件执行需要的信息 --&gt;
                        &lt;execution&gt;
                            &lt;!--执行目标的标识符，用于标识构建过程中的目标，或者匹配继承过程中需要合并的执行目标 --&gt;
                            &lt;id /&gt;
                            &lt;!--绑定了目标的构建生命周期阶段，如果省略，目标会被绑定到源数据里配置的默认阶段 --&gt;
                            &lt;phase /&gt;
                            &lt;!--配置的执行目标 --&gt;
                            &lt;goals /&gt;
                            &lt;!--配置是否被传播到子POM --&gt;
                            &lt;inherited /&gt;
                            &lt;!--作为DOM对象的配置 --&gt;
                            &lt;configuration /&gt;
                        &lt;/execution&gt;
                    &lt;/executions&gt;
                    &lt;!--项目引入插件所需要的额外依赖 --&gt;
                    &lt;dependencies&gt;
                        &lt;!--参见dependencies/dependency元素 --&gt;
                        &lt;dependency&gt;
                            ......
                        &lt;/dependency&gt;
                    &lt;/dependencies&gt;
                    &lt;!--任何配置是否被传播到子项目 --&gt;
                    &lt;inherited /&gt;
                    &lt;!--作为DOM对象的配置 --&gt;
                    &lt;configuration /&gt;
                &lt;/plugin&gt;
            &lt;/plugins&gt;
        &lt;/pluginManagement&gt;
        &lt;!--使用的插件列表 --&gt;
        &lt;plugins&gt;
            &lt;!--参见build/pluginManagement/plugins/plugin元素 --&gt;
            &lt;plugin&gt;
                &lt;groupId /&gt;
                &lt;artifactId /&gt;
                &lt;version /&gt;
                &lt;extensions /&gt;
                &lt;executions&gt;
                    &lt;execution&gt;
                        &lt;id /&gt;
                        &lt;phase /&gt;
                        &lt;goals /&gt;
                        &lt;inherited /&gt;
                        &lt;configuration /&gt;
                    &lt;/execution&gt;
                &lt;/executions&gt;
                &lt;dependencies&gt;
                    &lt;!--参见dependencies/dependency元素 --&gt;
                    &lt;dependency&gt;
                        ......
                    &lt;/dependency&gt;
                &lt;/dependencies&gt;
                &lt;goals /&gt;
                &lt;inherited /&gt;
                &lt;configuration /&gt;
            &lt;/plugin&gt;
        &lt;/plugins&gt;
    &lt;/build&gt;
    &lt;!--在列的项目构建profile，如果被激活，会修改构建处理 --&gt;
    &lt;profiles&gt;
        &lt;!--根据环境参数或命令行参数激活某个构建处理 --&gt;
        &lt;profile&gt;
            &lt;!--构建配置的唯一标识符。即用于命令行激活，也用于在继承时合并具有相同标识符的profile。 --&gt;
            &lt;id /&gt;
            &lt;!--自动触发profile的条件逻辑。Activation是profile的开启钥匙。profile的力量来自于它 能够在某些特定的环境中自动使用某些特定的值；这些环境通过activation元素指定。activation元素并不是激活profile的唯一方式。 --&gt;
            &lt;activation&gt;
                &lt;!--profile默认是否激活的标志 --&gt;
                &lt;activeByDefault /&gt;
                &lt;!--当匹配的jdk被检测到，profile被激活。例如，1.4激活JDK1.4，1.4.0_2，而!1.4激活所有版本不是以1.4开头的JDK。 --&gt;
                &lt;jdk /&gt;
                &lt;!--当匹配的操作系统属性被检测到，profile被激活。os元素可以定义一些操作系统相关的属性。 --&gt;
                &lt;os&gt;
                    &lt;!--激活profile的操作系统的名字 --&gt;
                    &lt;name&gt;Windows XP&lt;/name&gt;
                    &lt;!--激活profile的操作系统所属家族(如 &#39;windows&#39;) --&gt;
                    &lt;family&gt;Windows&lt;/family&gt;
                    &lt;!--激活profile的操作系统体系结构 --&gt;
                    &lt;arch&gt;x86&lt;/arch&gt;
                    &lt;!--激活profile的操作系统版本 --&gt;
                    &lt;version&gt;5.1.2600&lt;/version&gt;
                &lt;/os&gt;
                &lt;!--如果Maven检测到某一个属性（其值可以在POM中通过${名称}引用），其拥有对应的名称和值，Profile就会被激活。如果值 字段是空的，那么存在属性名称字段就会激活profile，否则按区分大小写方式匹配属性值字段 --&gt;
                &lt;property&gt;
                    &lt;!--激活profile的属性的名称 --&gt;
                    &lt;name&gt;mavenVersion&lt;/name&gt;
                    &lt;!--激活profile的属性的值 --&gt;
                    &lt;value&gt;2.0.3&lt;/value&gt;
                &lt;/property&gt;
                &lt;!--提供一个文件名，通过检测该文件的存在或不存在来激活profile。missing检查文件是否存在，如果不存在则激活 profile。另一方面，exists则会检查文件是否存在，如果存在则激活profile。 --&gt;
                &lt;file&gt;
                    &lt;!--如果指定的文件存在，则激活profile。 --&gt;
                    &lt;exists&gt;/usr/local/hudson/hudson-home/jobs/maven-guide-zh-to-production/workspace/
                    &lt;/exists&gt;
                    &lt;!--如果指定的文件不存在，则激活profile。 --&gt;
                    &lt;missing&gt;/usr/local/hudson/hudson-home/jobs/maven-guide-zh-to-production/workspace/
                    &lt;/missing&gt;
                &lt;/file&gt;
            &lt;/activation&gt;
            &lt;!--构建项目所需要的信息。参见build元素 --&gt;
            &lt;build&gt;
                &lt;defaultGoal /&gt;
                &lt;resources&gt;
                    &lt;resource&gt;
                        &lt;targetPath /&gt;
                        &lt;filtering /&gt;
                        &lt;directory /&gt;
                        &lt;includes /&gt;
                        &lt;excludes /&gt;
                    &lt;/resource&gt;
                &lt;/resources&gt;
                &lt;testResources&gt;
                    &lt;testResource&gt;
                        &lt;targetPath /&gt;
                        &lt;filtering /&gt;
                        &lt;directory /&gt;
                        &lt;includes /&gt;
                        &lt;excludes /&gt;
                    &lt;/testResource&gt;
                &lt;/testResources&gt;
                &lt;directory /&gt;
                &lt;finalName /&gt;
                &lt;filters /&gt;
                &lt;pluginManagement&gt;
                    &lt;plugins&gt;
                        &lt;!--参见build/pluginManagement/plugins/plugin元素 --&gt;
                        &lt;plugin&gt;
                            &lt;groupId /&gt;
                            &lt;artifactId /&gt;
                            &lt;version /&gt;
                            &lt;extensions /&gt;
                            &lt;executions&gt;
                                &lt;execution&gt;
                                    &lt;id /&gt;
                                    &lt;phase /&gt;
                                    &lt;goals /&gt;
                                    &lt;inherited /&gt;
                                    &lt;configuration /&gt;
                                &lt;/execution&gt;
                            &lt;/executions&gt;
                            &lt;dependencies&gt;
                                &lt;!--参见dependencies/dependency元素 --&gt;
                                &lt;dependency&gt;
                                    ......
                                &lt;/dependency&gt;
                            &lt;/dependencies&gt;
                            &lt;goals /&gt;
                            &lt;inherited /&gt;
                            &lt;configuration /&gt;
                        &lt;/plugin&gt;
                    &lt;/plugins&gt;
                &lt;/pluginManagement&gt;
                &lt;plugins&gt;
                    &lt;!--参见build/pluginManagement/plugins/plugin元素 --&gt;
                    &lt;plugin&gt;
                        &lt;groupId /&gt;
                        &lt;artifactId /&gt;
                        &lt;version /&gt;
                        &lt;extensions /&gt;
                        &lt;executions&gt;
                            &lt;execution&gt;
                                &lt;id /&gt;
                                &lt;phase /&gt;
                                &lt;goals /&gt;
                                &lt;inherited /&gt;
                                &lt;configuration /&gt;
                            &lt;/execution&gt;
                        &lt;/executions&gt;
                        &lt;dependencies&gt;
                            &lt;!--参见dependencies/dependency元素 --&gt;
                            &lt;dependency&gt;
                                ......
                            &lt;/dependency&gt;
                        &lt;/dependencies&gt;
                        &lt;goals /&gt;
                        &lt;inherited /&gt;
                        &lt;configuration /&gt;
                    &lt;/plugin&gt;
                &lt;/plugins&gt;
            &lt;/build&gt;
            &lt;!--模块（有时称作子项目） 被构建成项目的一部分。列出的每个模块元素是指向该模块的目录的相对路径 --&gt;
            &lt;modules /&gt;
            &lt;!--发现依赖和扩展的远程仓库列表。 --&gt;
            &lt;repositories&gt;
                &lt;!--参见repositories/repository元素 --&gt;
                &lt;repository&gt;
                    &lt;releases&gt;
                        &lt;enabled /&gt;
                        &lt;updatePolicy /&gt;
                        &lt;checksumPolicy /&gt;
                    &lt;/releases&gt;
                    &lt;snapshots&gt;
                        &lt;enabled /&gt;
                        &lt;updatePolicy /&gt;
                        &lt;checksumPolicy /&gt;
                    &lt;/snapshots&gt;
                    &lt;id /&gt;
                    &lt;name /&gt;
                    &lt;url /&gt;
                    &lt;layout /&gt;
                &lt;/repository&gt;
            &lt;/repositories&gt;
            &lt;!--发现插件的远程仓库列表，这些插件用于构建和报表 --&gt;
            &lt;pluginRepositories&gt;
                &lt;!--包含需要连接到远程插件仓库的信息.参见repositories/repository元素 --&gt;
                &lt;pluginRepository&gt;
                    &lt;releases&gt;
                        &lt;enabled /&gt;
                        &lt;updatePolicy /&gt;
                        &lt;checksumPolicy /&gt;
                    &lt;/releases&gt;
                    &lt;snapshots&gt;
                        &lt;enabled /&gt;
                        &lt;updatePolicy /&gt;
                        &lt;checksumPolicy /&gt;
                    &lt;/snapshots&gt;
                    &lt;id /&gt;
                    &lt;name /&gt;
                    &lt;url /&gt;
                    &lt;layout /&gt;
                &lt;/pluginRepository&gt;
            &lt;/pluginRepositories&gt;
            &lt;!--该元素描述了项目相关的所有依赖。 这些依赖组成了项目构建过程中的一个个环节。它们自动从项目定义的仓库中下载。要获取更多信息，请看项目依赖机制。 --&gt;
            &lt;dependencies&gt;
                &lt;!--参见dependencies/dependency元素 --&gt;
                &lt;dependency&gt;
                    ......
                &lt;/dependency&gt;
            &lt;/dependencies&gt;
            &lt;!--不赞成使用. 现在Maven忽略该元素. --&gt;
            &lt;reports /&gt;
            &lt;!--该元素包括使用报表插件产生报表的规范。当用户执行&quot;mvn site&quot;，这些报表就会运行。 在页面导航栏能看到所有报表的链接。参见reporting元素 --&gt;
            &lt;reporting&gt;
                ......
            &lt;/reporting&gt;
            &lt;!--参见dependencyManagement元素 --&gt;
            &lt;dependencyManagement&gt;
                &lt;dependencies&gt;
                    &lt;!--参见dependencies/dependency元素 --&gt;
                    &lt;dependency&gt;
                        ......
                    &lt;/dependency&gt;
                &lt;/dependencies&gt;
            &lt;/dependencyManagement&gt;
            &lt;!--参见distributionManagement元素 --&gt;
            &lt;distributionManagement&gt;
                ......
            &lt;/distributionManagement&gt;
            &lt;!--参见properties元素 --&gt;
            &lt;properties /&gt;
        &lt;/profile&gt;
    &lt;/profiles&gt;
    &lt;!--模块（有时称作子项目） 被构建成项目的一部分。列出的每个模块元素是指向该模块的目录的相对路径 --&gt;
    &lt;modules /&gt;
    &lt;!--发现依赖和扩展的远程仓库列表。 --&gt;
    &lt;repositories&gt;
        &lt;!--包含需要连接到远程仓库的信息 --&gt;
        &lt;repository&gt;
            &lt;!--如何处理远程仓库里发布版本的下载 --&gt;
            &lt;releases&gt;
                &lt;!--true或者false表示该仓库是否为下载某种类型构件（发布版，快照版）开启。 --&gt;
                &lt;enabled /&gt;
                &lt;!--该元素指定更新发生的频率。Maven会比较本地POM和远程POM的时间戳。这里的选项是：always（一直），daily（默认，每日），interval：X（这里X是以分钟为单位的时间间隔），或者never（从不）。 --&gt;
                &lt;updatePolicy /&gt;
                &lt;!--当Maven验证构件校验文件失败时该怎么做：ignore（忽略），fail（失败），或者warn（警告）。 --&gt;
                &lt;checksumPolicy /&gt;
            &lt;/releases&gt;
            &lt;!-- 如何处理远程仓库里快照版本的下载。有了releases和snapshots这两组配置，POM就可以在每个单独的仓库中，为每种类型的构件采取不同的 
                策略。例如，可能有人会决定只为开发目的开启对快照版本下载的支持。参见repositories/repository/releases元素 --&gt;
            &lt;snapshots&gt;
                &lt;enabled /&gt;
                &lt;updatePolicy /&gt;
                &lt;checksumPolicy /&gt;
            &lt;/snapshots&gt;
            &lt;!--远程仓库唯一标识符。可以用来匹配在settings.xml文件里配置的远程仓库 --&gt;
            &lt;id&gt;banseon-repository-proxy&lt;/id&gt;
            &lt;!--远程仓库名称 --&gt;
            &lt;name&gt;banseon-repository-proxy&lt;/name&gt;
            &lt;!--远程仓库URL，按protocol://hostname/path形式 --&gt;
            &lt;url&gt;http://192.168.1.169:9999/repository/&lt;/url&gt;
            &lt;!-- 用于定位和排序构件的仓库布局类型-可以是default（默认）或者legacy（遗留）。Maven 2为其仓库提供了一个默认的布局；然 
                而，Maven 1.x有一种不同的布局。我们可以使用该元素指定布局是default（默认）还是legacy（遗留）。 --&gt;
            &lt;layout&gt;default&lt;/layout&gt;
        &lt;/repository&gt;
    &lt;/repositories&gt;
    &lt;!--发现插件的远程仓库列表，这些插件用于构建和报表 --&gt;
    &lt;pluginRepositories&gt;
        &lt;!--包含需要连接到远程插件仓库的信息.参见repositories/repository元素 --&gt;
        &lt;pluginRepository&gt;
            ......
        &lt;/pluginRepository&gt;
    &lt;/pluginRepositories&gt;


    &lt;!--该元素描述了项目相关的所有依赖。 这些依赖组成了项目构建过程中的一个个环节。它们自动从项目定义的仓库中下载。要获取更多信息，请看项目依赖机制。 --&gt;
    &lt;dependencies&gt;
        &lt;dependency&gt;
            &lt;!--依赖的group ID --&gt;
            &lt;groupId&gt;org.apache.maven&lt;/groupId&gt;
            &lt;!--依赖的artifact ID --&gt;
            &lt;artifactId&gt;maven-artifact&lt;/artifactId&gt;
            &lt;!--依赖的版本号。 在Maven 2里, 也可以配置成版本号的范围。 --&gt;
            &lt;version&gt;3.8.1&lt;/version&gt;
            &lt;!-- 依赖类型，默认类型是jar。它通常表示依赖的文件的扩展名，但也有例外。一个类型可以被映射成另外一个扩展名或分类器。类型经常和使用的打包方式对应， 
                尽管这也有例外。一些类型的例子：jar，war，ejb-client和test-jar。如果设置extensions为 true，就可以在 plugin里定义新的类型。所以前面的类型的例子不完整。 --&gt;
            &lt;type&gt;jar&lt;/type&gt;
            &lt;!-- 依赖的分类器。分类器可以区分属于同一个POM，但不同构建方式的构件。分类器名被附加到文件名的版本号后面。例如，如果你想要构建两个单独的构件成 
                JAR，一个使用Java 1.4编译器，另一个使用Java 6编译器，你就可以使用分类器来生成两个单独的JAR构件。 --&gt;
            &lt;classifier&gt;&lt;/classifier&gt;
            &lt;!--依赖范围。在项目发布过程中，帮助决定哪些构件被包括进来。欲知详情请参考依赖机制。 - compile ：默认范围，用于编译 - provided：类似于编译，但支持你期待jdk或者容器提供，类似于classpath 
                - runtime: 在执行时需要使用 - test: 用于test任务时使用 - system: 需要外在提供相应的元素。通过systemPath来取得 
                - systemPath: 仅用于范围为system。提供相应的路径 - optional: 当项目自身被依赖时，标注依赖是否传递。用于连续依赖时使用 --&gt;
            &lt;scope&gt;test&lt;/scope&gt;
            &lt;!--仅供system范围使用。注意，不鼓励使用这个元素，并且在新的版本中该元素可能被覆盖掉。该元素为依赖规定了文件系统上的路径。需要绝对路径而不是相对路径。推荐使用属性匹配绝对路径，例如${java.home}。 --&gt;
            &lt;systemPath&gt;&lt;/systemPath&gt;
            &lt;!--当计算传递依赖时， 从依赖构件列表里，列出被排除的依赖构件集。即告诉maven你只依赖指定的项目，不依赖项目的依赖。此元素主要用于解决版本冲突问题 --&gt;
            &lt;exclusions&gt;
                &lt;exclusion&gt;
                    &lt;artifactId&gt;spring-core&lt;/artifactId&gt;
                    &lt;groupId&gt;org.springframework&lt;/groupId&gt;
                &lt;/exclusion&gt;
            &lt;/exclusions&gt;
            &lt;!--可选依赖，如果你在项目B中把C依赖声明为可选，你就需要在依赖于B的项目（例如项目A）中显式的引用对C的依赖。可选依赖阻断依赖的传递性。 --&gt;
            &lt;optional&gt;true&lt;/optional&gt;
        &lt;/dependency&gt;
    &lt;/dependencies&gt;
    &lt;!--不赞成使用. 现在Maven忽略该元素. --&gt;
    &lt;reports&gt;&lt;/reports&gt;
    &lt;!--该元素描述使用报表插件产生报表的规范。当用户执行&quot;mvn site&quot;，这些报表就会运行。 在页面导航栏能看到所有报表的链接。 --&gt;
    &lt;reporting&gt;
        &lt;!--true，则，网站不包括默认的报表。这包括&quot;项目信息&quot;菜单中的报表。 --&gt;
        &lt;excludeDefaults /&gt;
        &lt;!--所有产生的报表存放到哪里。默认值是${project.build.directory}/site。 --&gt;
        &lt;outputDirectory /&gt;
        &lt;!--使用的报表插件和他们的配置。 --&gt;
        &lt;plugins&gt;
            &lt;!--plugin元素包含描述报表插件需要的信息 --&gt;
            &lt;plugin&gt;
                &lt;!--报表插件在仓库里的group ID --&gt;
                &lt;groupId /&gt;
                &lt;!--报表插件在仓库里的artifact ID --&gt;
                &lt;artifactId /&gt;
                &lt;!--被使用的报表插件的版本（或版本范围） --&gt;
                &lt;version /&gt;
                &lt;!--任何配置是否被传播到子项目 --&gt;
                &lt;inherited /&gt;
                &lt;!--报表插件的配置 --&gt;
                &lt;configuration /&gt;
                &lt;!--一组报表的多重规范，每个规范可能有不同的配置。一个规范（报表集）对应一个执行目标 。例如，有1，2，3，4，5，6，7，8，9个报表。1，2，5构成A报表集，对应一个执行目标。2，5，8构成B报表集，对应另一个执行目标 --&gt;
                &lt;reportSets&gt;
                    &lt;!--表示报表的一个集合，以及产生该集合的配置 --&gt;
                    &lt;reportSet&gt;
                        &lt;!--报表集合的唯一标识符，POM继承时用到 --&gt;
                        &lt;id /&gt;
                        &lt;!--产生报表集合时，被使用的报表的配置 --&gt;
                        &lt;configuration /&gt;
                        &lt;!--配置是否被继承到子POMs --&gt;
                        &lt;inherited /&gt;
                        &lt;!--这个集合里使用到哪些报表 --&gt;
                        &lt;reports /&gt;
                    &lt;/reportSet&gt;
                &lt;/reportSets&gt;
            &lt;/plugin&gt;
        &lt;/plugins&gt;
    &lt;/reporting&gt;
    &lt;!-- 继承自该项目的所有子项目的默认依赖信息。这部分的依赖信息不会被立即解析,而是当子项目声明一个依赖（必须描述group ID和 artifact 
        ID信息），如果group ID和artifact ID以外的一些信息没有描述，则通过group ID和artifact ID 匹配到这里的依赖，并使用这里的依赖信息。 --&gt;
    &lt;dependencyManagement&gt;
        &lt;dependencies&gt;
            &lt;!--参见dependencies/dependency元素 --&gt;
            &lt;dependency&gt;
                ......
            &lt;/dependency&gt;
        &lt;/dependencies&gt;
    &lt;/dependencyManagement&gt;
    &lt;!--项目分发信息，在执行mvn deploy后表示要发布的位置。有了这些信息就可以把网站部署到远程服务器或者把构件部署到远程仓库。 --&gt;
    &lt;distributionManagement&gt;
        &lt;!--部署项目产生的构件到远程仓库需要的信息 --&gt;
        &lt;repository&gt;
            &lt;!--是分配给快照一个唯一的版本号（由时间戳和构建流水号）？还是每次都使用相同的版本号？参见repositories/repository元素 --&gt;
            &lt;uniqueVersion /&gt;
            &lt;id&gt;banseon-maven2&lt;/id&gt;
            &lt;name&gt;banseon maven2&lt;/name&gt;
            &lt;url&gt;file://${basedir}/target/deploy&lt;/url&gt;
            &lt;layout /&gt;
        &lt;/repository&gt;
        &lt;!--构件的快照部署到哪里？如果没有配置该元素，默认部署到repository元素配置的仓库，参见distributionManagement/repository元素 --&gt;
        &lt;snapshotRepository&gt;
            &lt;uniqueVersion /&gt;
            &lt;id&gt;banseon-maven2&lt;/id&gt;
            &lt;name&gt;Banseon-maven2 Snapshot Repository&lt;/name&gt;
            &lt;url&gt;scp://svn.baidu.com/banseon:/usr/local/maven-snapshot&lt;/url&gt;
            &lt;layout /&gt;
        &lt;/snapshotRepository&gt;
        &lt;!--部署项目的网站需要的信息 --&gt;
        &lt;site&gt;
            &lt;!--部署位置的唯一标识符，用来匹配站点和settings.xml文件里的配置 --&gt;
            &lt;id&gt;banseon-site&lt;/id&gt;
            &lt;!--部署位置的名称 --&gt;
            &lt;name&gt;business api website&lt;/name&gt;
            &lt;!--部署位置的URL，按protocol://hostname/path形式 --&gt;
            &lt;url&gt;
                scp://svn.baidu.com/banseon:/var/www/localhost/banseon-web
            &lt;/url&gt;
        &lt;/site&gt;
        &lt;!--项目下载页面的URL。如果没有该元素，用户应该参考主页。使用该元素的原因是：帮助定位那些不在仓库里的构件（由于license限制）。 --&gt;
        &lt;downloadUrl /&gt;
        &lt;!--如果构件有了新的group ID和artifact ID（构件移到了新的位置），这里列出构件的重定位信息。 --&gt;
        &lt;relocation&gt;
            &lt;!--构件新的group ID --&gt;
            &lt;groupId /&gt;
            &lt;!--构件新的artifact ID --&gt;
            &lt;artifactId /&gt;
            &lt;!--构件新的版本号 --&gt;
            &lt;version /&gt;
            &lt;!--显示给用户的，关于移动的额外信息，例如原因。 --&gt;
            &lt;message /&gt;
        &lt;/relocation&gt;
        &lt;!-- 给出该构件在远程仓库的状态。不得在本地项目中设置该元素，因为这是工具自动更新的。有效的值有：none（默认），converted（仓库管理员从 
            Maven 1 POM转换过来），partner（直接从伙伴Maven 2仓库同步过来），deployed（从Maven 2实例部 署），verified（被核实时正确的和最终的）。 --&gt;
        &lt;status /&gt;
    &lt;/distributionManagement&gt;
    &lt;!--以值替代名称，Properties可以在整个POM中使用，也可以作为触发条件（见settings.xml配置文件里activation元素的说明）。格式是&lt;name&gt;value&lt;/name&gt;。 --&gt;
    &lt;properties /&gt;
&lt;/project&gt;</code></pre>
<h1 id="Maven-配置文件"><a href="#Maven-配置文件" class="headerlink" title="Maven 配置文件"></a>Maven 配置文件</h1><p>构建配置文件是一系列的配置项的值，可以用来设置或者覆盖 Maven 构建默认值。</p>
<p>使用构建配置文件，你可以为不同的环境，比如说生产环境（Production）和开发（Development）环境，定制构建方式。</p>
<p>配置文件在 pom.xml 文件中使用 activeProfiles 或者 profiles 元素指定，并且可以通过各种方式触发。配置文件在构建时修改 POM，并且用来给参数设定不同的目标环境（比如说，开发（Development）、测试（Testing）和生产环境（Producation）中数据库服务器的地址）。</p>
<hr>
<h2 id="配置文件的类型"><a href="#配置文件的类型" class="headerlink" title="配置文件的类型"></a>配置文件的类型</h2><p>构建配置文件大体上有三种类型:</p>
<table>
<thead>
<tr>
<th align="left">类型</th>
<th align="left">在哪定义</th>
</tr>
</thead>
<tbody><tr>
<td align="left">项目级（Per Project）</td>
<td align="left">定义在项目的POM文件pom.xml中</td>
</tr>
<tr>
<td align="left">用户级 （Per User）</td>
<td align="left">定义在Maven的设置xml文件中 (%USER_HOME%/.m2/settings.xml)</td>
</tr>
<tr>
<td align="left">全局（Global）</td>
<td align="left">定义在 Maven 全局的设置 xml 文件中 (%MAVEN_HOME%/conf/settings.xml)</td>
</tr>
</tbody></table>
<h2 id="配置文件详解"><a href="#配置文件详解" class="headerlink" title="配置文件详解"></a>配置文件详解</h2><pre><code class="xml">&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;

&lt;settings   xmlns=&quot;http://maven.apache.org/POM/4.0.0&quot;  
    xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot;  
    xsi:schemaLocation=&quot;http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd&quot;&gt;

    &lt;!--本地仓库。该值表示构建系统本地仓库的路径。其默认值为${user.home}/.m2/repository。  --&gt;
    &lt;localRepository&gt;usr/local/maven&lt;/localRepository&gt;

    &lt;!--Maven是否需要和用户交互以获得输入。如果Maven需要和用户交互以获得输入，则设置成true，反之则应为false。默认为true。 --&gt;
    &lt;interactiveMode&gt;true&lt;/interactiveMode&gt;

    &lt;!--Maven是否需要使用plugin-registry.xml文件来管理插件版本。  --&gt;
    &lt;!--如果设置为true，则在{user.home}/.m2下需要有一个plugin-registry.xml来对plugin的版本进行管理  --&gt;
    &lt;!--默认为false。 --&gt;
    &lt;usePluginRegistry&gt;false&lt;/usePluginRegistry&gt;

    &lt;!--表示Maven是否需要在离线模式下运行。如果构建系统需要在离线模式下运行，则为true，默认为false。  --&gt;
    &lt;!--当由于网络设置原因或者安全因素，构建服务器不能连接远程仓库的时候，该配置就十分有用。  --&gt;
    &lt;offline&gt;false&lt;/offline&gt;

    &lt;!--当插件的组织Id（groupId）没有显式提供时，供搜寻插件组织Id（groupId）的列表。  --&gt;
    &lt;!--该元素包含一个pluginGroup元素列表，每个子元素包含了一个组织Id（groupId）。  --&gt;
    &lt;!--当我们使用某个插件，并且没有在命令行为其提供组织Id（groupId）的时候，Maven就会使用该列表。  --&gt;
    &lt;!--默认情况下该列表包含了org.apache.maven.plugins。  --&gt;
    &lt;pluginGroups&gt;

        &lt;!--plugin的组织Id（groupId）  --&gt;
        &lt;pluginGroup&gt;org.codehaus.mojo&lt;/pluginGroup&gt;

    &lt;/pluginGroups&gt;

    &lt;!--用来配置不同的代理，多代理profiles可以应对笔记本或移动设备的工作环境：通过简单的设置profile id就可以很容易的更换整个代理配置。  --&gt;
    &lt;proxies&gt;

        &lt;!--代理元素包含配置代理时需要的信息 --&gt;
        &lt;proxy&gt;

            &lt;!--代理的唯一定义符，用来区分不同的代理元素。 --&gt;
            &lt;id&gt;myproxy&lt;/id&gt;

            &lt;!--该代理是否是激活的那个。true则激活代理。当我们声明了一组代理，而某个时候只需要激活一个代理的时候，该元素就可以派上用处。  --&gt;
            &lt;active&gt;true&lt;/active&gt;

            &lt;!--代理的协议。 协议://主机名:端口，分隔成离散的元素以方便配置。 --&gt;
            &lt;protocol&gt;http://…&lt;/protocol&gt;

            &lt;!--代理的主机名。协议://主机名:端口，分隔成离散的元素以方便配置。   --&gt;
            &lt;host&gt;proxy.somewhere.com&lt;/host&gt;

            &lt;!--代理的端口。协议://主机名:端口，分隔成离散的元素以方便配置。  --&gt;
            &lt;port&gt;8080&lt;/port&gt;

             &lt;!--代理的用户名，用户名和密码表示代理服务器认证的登录名和密码。  --&gt;
            &lt;username&gt;proxyuser&lt;/username&gt;

            &lt;!--代理的密码，用户名和密码表示代理服务器认证的登录名和密码。  --&gt;
            &lt;password&gt;somepassword&lt;/password&gt;

            &lt;!--不该被代理的主机名列表。该列表的分隔符由代理服务器指定；例子中使用了竖线分隔符，使用逗号分隔也很常见。 --&gt;
            &lt;nonProxyHosts&gt;*.google.com|ibiblio.org&lt;/nonProxyHosts&gt;

        &lt;/proxy&gt;

    &lt;/proxies&gt;

    &lt;!--配置服务端的一些设置。一些设置如安全证书不应该和pom.xml一起分发。这种类型的信息应该存在于构建服务器上的settings.xml文件中。 --&gt;
    &lt;servers&gt;

        &lt;!--服务器元素包含配置服务器时需要的信息  --&gt;
        &lt;server&gt;

            &lt;!--这是server的id（注意不是用户登陆的id），该id与distributionManagement中repository元素的id相匹配。 --&gt;
            &lt;id&gt;server001&lt;/id&gt;

            &lt;!--鉴权用户名。鉴权用户名和鉴权密码表示服务器认证所需要的登录名和密码。  --&gt;
            &lt;username&gt;my_login&lt;/username&gt;

            &lt;!--鉴权密码 。鉴权用户名和鉴权密码表示服务器认证所需要的登录名和密码。  --&gt;
            &lt;password&gt;my_password&lt;/password&gt;

            &lt;!--鉴权时使用的私钥位置。和前两个元素类似，私钥位置和私钥密码指定了一个私钥的路径（默认是/home/hudson/.ssh/id_dsa）以及如果需要的话，一个密钥 --&gt;
            &lt;!--将来passphrase和password元素可能会被提取到外部，但目前它们必须在settings.xml文件以纯文本的形式声明。  --&gt;
            &lt;privateKey&gt;${usr.home}/.ssh/id_dsa&lt;/privateKey&gt;

            &lt;!--鉴权时使用的私钥密码。 --&gt;
            &lt;passphrase&gt;some_passphrase&lt;/passphrase&gt;

            &lt;!--文件被创建时的权限。如果在部署的时候会创建一个仓库文件或者目录，这时候就可以使用权限（permission）。--&gt;
            &lt;!--这两个元素合法的值是一个三位数字，其对应了unix文件系统的权限，如664，或者775。  --&gt;
            &lt;filePermissions&gt;664&lt;/filePermissions&gt;

            &lt;!--目录被创建时的权限。  --&gt;
            &lt;directoryPermissions&gt;775&lt;/directoryPermissions&gt;

            &lt;!--传输层额外的配置项  --&gt;
            &lt;configuration&gt;&lt;/configuration&gt;

        &lt;/server&gt;

    &lt;/servers&gt;

    &lt;!--为仓库列表配置的下载镜像列表。  --&gt;
    &lt;mirrors&gt;

        &lt;!--给定仓库的下载镜像。  --&gt;
        &lt;mirror&gt;

            &lt;!--该镜像的唯一标识符。id用来区分不同的mirror元素。  --&gt;
            &lt;id&gt;planetmirror.com&lt;/id&gt;

            &lt;!--镜像名称  --&gt;
            &lt;name&gt;PlanetMirror Australia&lt;/name&gt;

            &lt;!--该镜像的URL。构建系统会优先考虑使用该URL，而非使用默认的服务器URL。  --&gt;
            &lt;url&gt;http://downloads.planetmirror.com/pub/maven2&lt;/url&gt;

            &lt;!--被镜像的服务器的id。例如，如果我们要设置了一个Maven中央仓库（http://repo1.maven.org/maven2）的镜像，--&gt;
            &lt;!--就需要将该元素设置成central。这必须和中央仓库的id central完全一致。 --&gt;
            &lt;mirrorOf&gt;central&lt;/mirrorOf&gt;

        &lt;/mirror&gt;

    &lt;/mirrors&gt;

    &lt;!--根据环境参数来调整构建配置的列表。settings.xml中的profile元素是pom.xml中profile元素的裁剪版本。--&gt;
    &lt;!--它包含了id，activation, repositories, pluginRepositories和 properties元素。--&gt;
    &lt;!--这里的profile元素只包含这五个子元素是因为这里只关心构建系统这个整体（这正是settings.xml文件的角色定位），而非单独的项目对象模型设置。--&gt;
    &lt;!--如果一个settings中的profile被激活，它的值会覆盖任何其它定义在POM中或者profile.xml中的带有相同id的profile。  --&gt;
    &lt;profiles&gt;

        &lt;!--根据环境参数来调整的构件的配置 --&gt;
        &lt;profile&gt;

            &lt;!--该配置的唯一标识符。  --&gt;
            &lt;id&gt;test&lt;/id&gt;

            &lt;!--自动触发profile的条件逻辑。Activation是profile的开启钥匙。--&gt;
            &lt;!--如POM中的profile一样，profile的力量来自于它能够在某些特定的环境中自动使用某些特定的值；这些环境通过activation元素指定。--&gt;
            &lt;!--activation元素并不是激活profile的唯一方式。settings.xml文件中的activeProfile元素可以包含profile的id。--&gt;
            &lt;!--profile也可以通过在命令行，使用-P标记和逗号分隔的列表来显式的激活（如，-P test）。 --&gt;
            &lt;activation&gt;

                &lt;!--profile默认是否激活的标识 --&gt;
                &lt;activeByDefault&gt;false&lt;/activeByDefault&gt;

                &lt;!--activation有一个内建的java版本检测，如果检测到jdk版本与期待的一样，profile被激活。 --&gt;
                &lt;jdk&gt;1.7&lt;/jdk&gt;

                &lt;!--当匹配的操作系统属性被检测到，profile被激活。os元素可以定义一些操作系统相关的属性。 --&gt;
                &lt;os&gt;

                    &lt;!--激活profile的操作系统的名字  --&gt;
                    &lt;name&gt;Windows XP&lt;/name&gt;

                    &lt;!--激活profile的操作系统所属家族(如 &#39;windows&#39;)   --&gt;
                    &lt;family&gt;Windows&lt;/family&gt;

                    &lt;!--激活profile的操作系统体系结构   --&gt;
                    &lt;arch&gt;x86&lt;/arch&gt;

                    &lt;!--激活profile的操作系统版本 --&gt;
                    &lt;version&gt;5.1.2600&lt;/version&gt;

                &lt;/os&gt;

                &lt;!--如果Maven检测到某一个属性（其值可以在POM中通过${名称}引用），其拥有对应的名称和值，Profile就会被激活。--&gt;
                &lt;!--如果值字段是空的，那么存在属性名称字段就会激活profile，否则按区分大小写方式匹配属性值字段 --&gt;
                &lt;property&gt;

                    &lt;!--激活profile的属性的名称 --&gt;
                    &lt;name&gt;mavenVersion&lt;/name&gt;

                    &lt;!--激活profile的属性的值  --&gt;
                    &lt;value&gt;2.0.3&lt;/value&gt;

                &lt;/property&gt;

                &lt;!--提供一个文件名，通过检测该文件的存在或不存在来激活profile。missing检查文件是否存在，如果不存在则激活profile。--&gt;
                &lt;!--另一方面，exists则会检查文件是否存在，如果存在则激活profile。 --&gt;
                &lt;file&gt;

                    &lt;!--如果指定的文件存在，则激活profile。  --&gt;
                    &lt;exists&gt;/usr/local/hudson/hudson-home/jobs/maven-guide-zh-to-production/workspace/&lt;/exists&gt;

                    &lt;!--如果指定的文件不存在，则激活profile。 --&gt;
                    &lt;missing&gt;/usr/local/hudson/hudson-home/jobs/maven-guide-zh-to-production/workspace/&lt;/missing&gt;

                &lt;/file&gt;

            &lt;/activation&gt;

             &lt;!--对应profile的扩展属性列表。Maven属性和Ant中的属性一样，可以用来存放一些值。这些值可以在POM中的任何地方使用标记${X}来使用，这里X是指属性的名称。--&gt;
            &lt;!--属性有五种不同的形式，并且都能在settings.xml文件中访问。   --&gt;
            &lt;!--1. env.X: 在一个变量前加上&quot;env.&quot;的前缀，会返回一个shell环境变量。例如,&quot;env.PATH&quot;指代了$path环境变量（在Windows上是%PATH%）。  --&gt; 
            &lt;!--2. project.x：指代了POM中对应的元素值。      --&gt;
            &lt;!--3. settings.x: 指代了settings.xml中对应元素的值。   --&gt;
            &lt;!--4. Java System Properties: 所有可通过java.lang.System.getProperties()访问的属性都能在POM中使用该形式访问，   --&gt;
            &lt;!--   如/usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0/jre。      --&gt;
            &lt;!--5. x: 在&lt;properties/&gt;元素中，或者外部文件中设置，以${someVar}的形式使用。  --&gt;
            &lt;properties&gt;

                &lt;!-- 如果这个profile被激活，那么属性${user.install}就可以被访问了 --&gt;
                &lt;user.install&gt;usr/local/winner/jobs/maven-guide&lt;/user.install&gt;

            &lt;/properties&gt;

            &lt;!--远程仓库列表，它是Maven用来填充构建系统本地仓库所使用的一组远程项目。  --&gt;
            &lt;repositories&gt;

                &lt;!--包含需要连接到远程仓库的信息  --&gt;
                &lt;repository&gt;

                    &lt;!--远程仓库唯一标识 --&gt;
                    &lt;id&gt;codehausSnapshots&lt;/id&gt;

                    &lt;!--远程仓库名称  --&gt;
                    &lt;name&gt;Codehaus Snapshots&lt;/name&gt;

                    &lt;!--如何处理远程仓库里发布版本的下载 --&gt;
                    &lt;releases&gt;

                        &lt;!--true或者false表示该仓库是否为下载某种类型构件（发布版，快照版）开启。   --&gt;
                        &lt;enabled&gt;false&lt;/enabled&gt;

                        &lt;!--该元素指定更新发生的频率。Maven会比较本地POM和远程POM的时间戳。这里的选项是：--&gt;
                        &lt;!--always（一直），daily（默认，每日），interval：X（这里X是以分钟为单位的时间间隔），或者never（从不）。  --&gt;
                        &lt;updatePolicy&gt;always&lt;/updatePolicy&gt;

                        &lt;!--当Maven验证构件校验文件失败时该怎么做:--&gt;
                        &lt;!--ignore（忽略），fail（失败），或者warn（警告）。 --&gt;
                        &lt;checksumPolicy&gt;warn&lt;/checksumPolicy&gt;

                    &lt;/releases&gt;

                    &lt;!--如何处理远程仓库里快照版本的下载。有了releases和snapshots这两组配置，POM就可以在每个单独的仓库中，为每种类型的构件采取不同的策略。--&gt;
                    &lt;!--例如，可能有人会决定只为开发目的开启对快照版本下载的支持。参见repositories/repository/releases元素 --&gt;
                    &lt;snapshots&gt;

                        &lt;enabled /&gt;
                        &lt;updatePolicy /&gt;
                        &lt;checksumPolicy /&gt;

                    &lt;/snapshots&gt;

                    &lt;!--远程仓库URL，按protocol://hostname/path形式  --&gt;
                    &lt;url&gt;http://snapshots.maven.codehaus.org/maven2&lt;/url&gt;

                    &lt;!--用于定位和排序构件的仓库布局类型-可以是default（默认）或者legacy（遗留）。--&gt;
                    &lt;!--Maven 2为其仓库提供了一个默认的布局；然而，Maven 1.x有一种不同的布局。我们可以使用该元素指定布局是default（默认）还是legacy（遗留）。  --&gt;
                    &lt;layout&gt;default&lt;/layout&gt;

                &lt;/repository&gt;

            &lt;/repositories&gt;

            &lt;!--发现插件的远程仓库列表。仓库是两种主要构件的家。第一种构件被用作其它构件的依赖。这是中央仓库中存储的大部分构件类型。另外一种构件类型是插件。--&gt;
            &lt;!--Maven插件是一种特殊类型的构件。由于这个原因，插件仓库独立于其它仓库。pluginRepositories元素的结构和repositories元素的结构类似。--&gt;
            &lt;!--每个pluginRepository元素指定一个Maven可以用来寻找新插件的远程地址。 --&gt;
            &lt;pluginRepositories&gt;

                &lt;!--包含需要连接到远程插件仓库的信息.参见profiles/profile/repositories/repository元素的说明 --&gt;
                &lt;pluginRepository&gt;
                    &lt;releases&gt;
                        &lt;enabled /&gt;
                        &lt;updatePolicy /&gt;
                        &lt;checksumPolicy /&gt;
                    &lt;/releases&gt;

                    &lt;snapshots&gt;
                        &lt;enabled /&gt;
                        &lt;updatePolicy /&gt;
                        &lt;checksumPolicy /&gt;
                    &lt;/snapshots&gt;

                    &lt;id /&gt;
                    &lt;name /&gt;
                    &lt;url /&gt;
                    &lt;layout /&gt;
                &lt;/pluginRepository&gt;

            &lt;/pluginRepositories&gt;

            &lt;!--手动激活profiles的列表，按照profile被应用的顺序定义activeProfile。 该元素包含了一组activeProfile元素，每个activeProfile都含有一个profile id。--&gt;
            &lt;!--任何在activeProfile中定义的profile id，不论环境设置如何，其对应的 profile都会被激活。--&gt;
            &lt;!--如果没有匹配的profile，则什么都不会发生。例如，env-test是一个activeProfile，则在pom.xml（或者profile.xml）中对应id的profile会被激活。--&gt;
            &lt;!--如果运行过程中找不到这样一个profile，Maven则会像往常一样运行。  --&gt;
            &lt;activeProfiles&gt;

                &lt;activeProfile&gt;env-test&lt;/activeProfile&gt;

            &lt;/activeProfiles&gt;

        &lt;/profile&gt;

    &lt;/profiles&gt;

&lt;/settings&gt;</code></pre>
<h1 id="Maven中的配置文件密码加密机制"><a href="#Maven中的配置文件密码加密机制" class="headerlink" title="Maven中的配置文件密码加密机制"></a>Maven中的配置文件密码加密机制</h1><p> Apache Maven项目提供了便捷的密码加密机制 ， 该机制目前只支持在命令行下的操作，如生成密码的密文。</p>
<p>此外，用户还需要在${user.home}/.m2目录下配置<strong>settings-security.xml</strong>文件，其中包含： </p>
<ul>
<li>用以加密其他密码的master password（此处也是密文）</li>
<li>或指向另一个保密文件的完整路径</li>
</ul>
<p>在该加密机制中有两个概念，一个是master password，即用以加密其他密码的密码，另一个就是实际使用的服务器访问密码password。master password的密文配置在settings-security.xml文件中，而服务器访问密码password的密文就可以大大方方地配置在settings.xml中。具体用法如下：</p>
<ol>
<li>生成Master password的密文 </li>
</ol>
<pre><code class="bash">mvn --encrypt-master-password  </code></pre>
<p> 根据提示输入Master password:就可以生成密文{iENT44//TgwH46wJQ0Go3et0u9PRZivf7LcAA9mY4LA=} </p>
<ol start="2">
<li>配置${user.home}/.m2/settings-security.xml文件 </li>
</ol>
<pre><code class="xml">&lt;settingsSecurity&gt;
  &lt;master&gt;{iENT44//TgwH46wJQ0Go3et0u9PRZivf7LcAA9mY4LA=}&lt;/master&gt;
&lt;/settingsSecurity&gt;</code></pre>
<p> 如果settings-security.xml文件被保存到U盘，则配置${user.home}/.m2/settings-security.xml文件如下： </p>
<pre><code class="xml">&lt;settingsSecurity&gt;
  &lt;master&gt;/my_u_volume/my_path/settings-security.xml&lt;/master&gt;
&lt;/settingsSecurity&gt;</code></pre>
<ol start="3">
<li>加密访问服务器的密码 </li>
</ol>
<pre><code class="bash">mvn --encrypt-password</code></pre>
<p>根据提示输入Password:就可以生成密文{rZhmW6UmQw0HhRTeqSBchuMAgAoH6owP/hJjV3a/9Eg=}</p>
<ol start="4">
<li>配置settings.xml文件 </li>
</ol>
<pre><code class="xml">&lt;server&gt;
  &lt;id&gt;my.server&lt;/id&gt;
  &lt;username&gt;myfoo&lt;/username&gt;
  &lt;password&gt;add_any_comment or {{rZhmW6UmQw0HhRTeqSBchuMAgAoH6owP/hJjV3a/9Eg=}} add_any_comment&lt;/password&gt;
&lt;/server&gt;</code></pre>
<h1 id="搭建Maven私服-Nexus"><a href="#搭建Maven私服-Nexus" class="headerlink" title="搭建Maven私服-Nexus"></a>搭建Maven私服-Nexus</h1><p> Nexus其实是商业收费的，但是它其实也有开源的版本，我们下载<code>Nexus Repository Manager OSS 3.x</code> </p>
<h2 id="Nexus下载与安装"><a href="#Nexus下载与安装" class="headerlink" title="Nexus下载与安装"></a>Nexus下载与安装</h2><p> <strong><a href="https://help.sonatype.com/repomanager3/download" target="_blank" rel="noopener">下载地址</a></strong>：</p>
<pre><code class="bash">https://help.sonatype.com/repomanager3/download</code></pre>
<p>用迅雷下载</p>
<p>下载完成大概样子</p>
<p><img src="https://raw.githubusercontent.com/lrt890424/imrepo/master/img/blog/nexus_1.png" alt=""></p>
<p><img src="https://raw.githubusercontent.com/lrt890424/imrepo/master/img/blog/nexus_2.png" alt=""></p>
<h3 id="修改Nexus默认端口号"><a href="#修改Nexus默认端口号" class="headerlink" title="修改Nexus默认端口号"></a><strong>修改Nexus默认端口号</strong></h3><p> 移步至<code>etc/</code>目录下，会有一个叫<code>default-nexus.properties</code>文件，修改其配置项的端口号即可，默认端口号是8081,配置如下： </p>
<pre><code class="properties">application-port=8092</code></pre>
<h3 id="安装Nexus"><a href="#安装Nexus" class="headerlink" title="安装Nexus"></a><strong>安装Nexus</strong></h3><p><strong>linux下需要先安装java</strong></p>
<p> Nexus可以在命令行直接启动，也可以被安装成一个服务，git-bash移步至安装目录下，输入<code>./nexus.exe -help</code>，回车如下： </p>
<pre><code class="bash">$ ./nexus.exe --help
Usage: nexus.exe /install | /uninstall | /stop | /start | /status | /run | /run-redirect</code></pre>
<p> 其中<code>install</code>,<code>uninstall</code>两个为服务安装与卸载命令，<code>start</code>，<code>stop</code>为服务启停命令，我们可以键入<code>./nexus.exe install</code>将nexus安装成为一个windows服务，然后<code>./nexus.exe start</code>将其启动即可。 </p>
<h2 id="Nexus配置"><a href="#Nexus配置" class="headerlink" title="Nexus配置"></a>Nexus配置</h2><p>打开首页进行配置</p>
<p>如果你的端口没有改动，则默认是8081端口，在浏览器输入<code>http://ip:port/</code>即可进入首页。如下图： </p>
<p><img src="https://raw.githubusercontent.com/lrt890424/imrepo/master/img/blog/nexus_3.png" alt=""></p>
<p>点击右上角的sign in去登录，Nexus默认有一个账号是<code>admin</code>,密码是<code>admin123</code>，进入之后可以修改密码。 </p>
<p><img src="https://raw.githubusercontent.com/lrt890424/imrepo/master/img/blog/nexus_4.png" alt=""></p>
<p>登录成功之后，进去这个页面</p>
<p>新建个仓库maven2 (proxy) 指向阿里云镜像</p>
<p><img src="https://raw.githubusercontent.com/lrt890424/imrepo/master/img/blog/nexus_5.png" alt=""></p>
<p><img src="https://raw.githubusercontent.com/lrt890424/imrepo/master/img/blog/nexus_6.png" alt=""></p>
<p>库名自定义:aliyun</p>
<p>url:<a href="http://maven.aliyun.com/nexus/content/groups/public/" target="_blank" rel="noopener">http://maven.aliyun.com/nexus/content/groups/public/</a></p>
<p>选择maven-public将刚创建的aliyun加入进去</p>
<p><img src="https://raw.githubusercontent.com/lrt890424/imrepo/master/img/blog/nexus_7.png" alt=""></p>
<p>为什么要修改远程代理地址呢？因为默认的远程仓库地址是maven中央仓库，如果遇到网络不好会非常的慢，再者是因为我们搭建了私服，后面项目引入jar包的原理就变成：<code>[项目]-&gt;[私服地址]-&gt;[阿里云镜像地址]</code></p>
<p>问题：是不是项目引入jar文件的时候都会走<code>[阿里云镜像地址]</code>？答案是否定的，只有当你的私服不存在项目需要的jar文件时，私服才会去你配置的代理地址去下载项目需要jar文件。当然了，nexus会备份从远程仓库拉取的包，保存在自己的center仓库中。</p>
<h2 id="项目maven配置"><a href="#项目maven配置" class="headerlink" title="项目maven配置"></a>项目maven配置</h2><p> 以前我们项目没有连接私服的时候，我们本地的<code>settings.xml</code>文件可能会加上这个配置，提高速度。 </p>
<pre><code class="xml">&lt;mirror&gt;
      &lt;id&gt;alimaven&lt;/id&gt;
      &lt;name&gt;aliyun maven&lt;/name&gt;
      &lt;url&gt;http://maven.aliyun.com/nexus/content/groups/public/&lt;/url&gt;
      &lt;mirrorOf&gt;central&lt;/mirrorOf&gt;        
&lt;/mirror&gt;</code></pre>
<p> 那么，如果配置了，现在请你把它删掉，换成下面的配置： </p>
<pre><code class="xml">&lt;mirror&gt;
      &lt;id&gt;public&lt;/id&gt;      
      &lt;mirrorOf&gt;central&lt;/mirrorOf&gt;
      &lt;name&gt;central repository&lt;/name&gt;
      &lt;url&gt;http://IP:8081/repository/maven-public/&lt;/url&gt;
&lt;/mirror&gt;
</code></pre>
<p> 这样表示会从私服拉取jar文件，当然啦，我们上面在私服配置了远程代理地址，本质上如果私服没有你想要的jar文件的话，还是会去阿里云上下载的。 </p>
<p> 接着在<code>settings.xml</code>文件中增加下面配置： </p>
<pre><code class="xml">&lt;profile&gt;
    &lt;id&gt;nexusProfile&lt;/id&gt;
    &lt;repositories&gt;
        &lt;repository&gt;
            &lt;id&gt;nexus&lt;/id&gt;
            &lt;name&gt;nexus&lt;/name&gt;
            &lt;url&gt;http://IP:8081/repository/maven-public/&lt;/url&gt;
            &lt;releases&gt;
                &lt;enabled&gt;true&lt;/enabled&gt;
            &lt;/releases&gt;
            &lt;snapshots&gt;
                &lt;enabled&gt;true&lt;/enabled&gt;
            &lt;/snapshots&gt;
        &lt;/repository&gt;
    &lt;/repositories&gt;
&lt;/profile&gt;

&lt;activeProfiles&gt;
    &lt;activeProfile&gt;nexusProfile&lt;/activeProfile&gt;
&lt;/activeProfiles&gt;

&lt;server&gt;
    &lt;id&gt;releases&lt;/id&gt; &lt;!-- 记为   id1--&gt;
    &lt;username&gt;admin&lt;/username&gt;
    &lt;password&gt;******&lt;/password&gt;
&lt;/server&gt;
&lt;server&gt;
    &lt;id&gt;snapshots&lt;/id&gt;  &lt;!-- 记为   id2--&gt;
    &lt;username&gt;admin&lt;/username&gt;
    &lt;password&gt;******&lt;/password&gt;
&lt;/server&gt;
</code></pre>
<p> 最后在项目的<code>pom.xml</code>文件中，新增下面配置： </p>
<pre><code class="XML">&lt;distributionManagement&gt;
    &lt;repository&gt;
        &lt;id&gt;releases&lt;/id&gt;
        &lt;name&gt;User Project Release&lt;/name&gt;
        &lt;url&gt;http://IP:8081/repository/maven-releases/&lt;/url&gt;
    &lt;/repository&gt;

    &lt;snapshotRepository&gt;
        &lt;id&gt;snapshots&lt;/id&gt;
        &lt;name&gt;User Project SNAPSHOTS&lt;/name&gt;
        &lt;url&gt;http://IP:8081/repository/maven-snapshots/&lt;/url&gt;
    &lt;/snapshotRepository&gt;
&lt;/distributionManagement&gt;</code></pre>
<h2 id="maven打包插件"><a href="#maven打包插件" class="headerlink" title="maven打包插件"></a>maven打包插件</h2><pre><code class="XML">&lt;build&gt;
        &lt;plugins&gt;
            &lt;plugin&gt;
                &lt;groupId&gt;org.apache.maven.plugins&lt;/groupId&gt;
                &lt;artifactId&gt;maven-jar-plugin&lt;/artifactId&gt;
                &lt;version&gt;2.4&lt;/version&gt;
                &lt;configuration&gt;
                    &lt;archive&gt;
                        &lt;!-- 生成的jar中，包含pom.xml和pom.properties这两个文件 --&gt;
                        &lt;addMavenDescriptor&gt;true&lt;/addMavenDescriptor&gt;
                        &lt;manifest&gt;
                            &lt;!-- 为依赖包添加路径, 这些路径会写在MANIFEST文件的Class-Path下 --&gt;
                            &lt;addClasspath&gt;true&lt;/addClasspath&gt;
                            &lt;!-- 这个jar所依赖的jar包添加classPath的时候的前缀，如果这个 jar本身和依赖包在同一级目录，则不需要添加 --&gt;
                            &lt;classpathPrefix&gt;lib/&lt;/classpathPrefix&gt;
                            &lt;!-- jar启动入口类 --&gt;
                            &lt;mainClass&gt;xxx&lt;/mainClass&gt;
                        &lt;/manifest&gt;
                    &lt;/archive&gt;
                    &lt;!-- jar包的位置 --&gt;
                    &lt;outputDirectory&gt;${project.build.directory}&lt;/outputDirectory&gt;
                    &lt;includes&gt;
                        &lt;!-- 打jar包时，只打包class文件 --&gt;
                        &lt;!-- 有时候可能需要一些其他文件，这边可以配置，包括剔除的文件等等 --&gt;
                        &lt;include&gt;**/*.class&lt;/include&gt;
                    &lt;/includes&gt;
                &lt;/configuration&gt;
            &lt;/plugin&gt;
            &lt;plugin&gt;
                &lt;artifactId&gt;maven-source-plugin&lt;/artifactId&gt;
                &lt;version&gt;2.1&lt;/version&gt;
                &lt;configuration&gt;
                    &lt;attach&gt;true&lt;/attach&gt;
                &lt;/configuration&gt;
                &lt;executions&gt;
                    &lt;execution&gt;
                        &lt;phase&gt;compile&lt;/phase&gt;
                        &lt;goals&gt;
                            &lt;goal&gt;jar&lt;/goal&gt;
                        &lt;/goals&gt;
                    &lt;/execution&gt;
                &lt;/executions&gt;
            &lt;/plugin&gt;
        &lt;/plugins&gt;
&lt;/build&gt;    
</code></pre>
<h2 id="nexus权限配置"><a href="#nexus权限配置" class="headerlink" title="nexus权限配置"></a>nexus权限配置</h2><h3 id="取消允许匿名用户访问"><a href="#取消允许匿名用户访问" class="headerlink" title="取消允许匿名用户访问"></a><strong>取消允许匿名用户访问</strong></h3><p> nexus3默认是让游客访问、下载的，我们为了安全着想，需要关闭此功能，配置新的帐号让开发者和运维者使用，关闭方法如下： 取消允许匿名用户访问</p>
<p><img src="https://raw.githubusercontent.com/lrt890424/imrepo/master/img/blog/nexus_8.png" alt=""></p>
<h3 id="配置Roles权限"><a href="#配置Roles权限" class="headerlink" title="配置Roles权限"></a><strong>配置Roles权限</strong></h3><p> nexus3需要先配置角色，在配置用户来分配权限。 </p>
<p><strong>配置开发者权限如下</strong></p>
<p>只需要仓库的view-maven2的browse（访问）、read（读取权限），需要配置public、releases、aliyun三个仓库的读取，访问。然后在下面添加角色即可</p>
<p><img src="https://raw.githubusercontent.com/lrt890424/imrepo/master/img/blog/nexus_9.png" alt=""></p>
<h3 id="配置用户"><a href="#配置用户" class="headerlink" title="配置用户"></a>配置用户</h3><p> 配置完毕角色后，添加用户，把角色放入用户即可 </p>

      
       <hr><span style="font-style: italic;color: gray;"> 转载请注明来源，欢迎对文章中的引用来源进行考证，欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论，也可以邮件至 86415270@qq.com </span>
    </div>
</article>


<p>
    <a class="dashang" onclick="dashangToggle()">赏</a>
</p>


<div class="article_copyright">
    <p><span class="copy-title">文章标题:</span>Maven 学习笔记</p>
    <p><span class="copy-title">文章字数:</span><span class="post-count">14.1k</span></p>
    <p><span class="copy-title">本文作者:</span><a title="李瑞桐">李瑞桐</a></p>
    <p><span class="copy-title">发布时间:</span>2019-11-30, 00:00:00</p>
    <p><span class="copy-title">最后更新:</span>2022-11-20, 16:34:04</p>
    <span class="copy-title">原始链接:</span><a class="post-url" href="/lrt_blog/2019/11/30/02%E5%BC%80%E5%8F%91%E5%B7%A5%E5%85%B7/Maven%20%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0/" title="Maven 学习笔记">https://loveyangxiaoyu.gitee.io/lrt_blog/2019/11/30/02%E5%BC%80%E5%8F%91%E5%B7%A5%E5%85%B7/Maven%20%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0/</a>
    <p>
        <span class="copy-title">版权声明:</span><i class="fa fa-creative-commons"></i> <a rel="license noopener" href="http://creativecommons.org/licenses/by-nc-sa/4.0/" target="_blank" title="CC BY-NC-SA 4.0 International" target = "_blank">"署名-非商用-相同方式共享 4.0"</a> 转载请保留原文链接及作者。
    </p>
</div>



    <div id="comments"></div>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/gitalk@1/dist/gitalk.css">

<script type="text/javascript">
    $.getScript('/lrt_blog/js/gitalk.js', function () {
        var gitalk = new Gitalk({
            clientID: '977658d53bffc49a7231',
            clientSecret: 'bd5ef398e64a580d122200d984d56f6da067ff83',
            repo: 'lrt890424.github.io',
            owner: 'lrt890424',
            admin: ['lrt890424'],
            id: decodeURI(location.pathname),
            distractionFreeMode: 'true',
            language: 'zh-CN',
            perPage: parseInt('10',10)
        })
        gitalk.render('comments')
    })
</script>




    




    </div>
    <div class="copyright">
        <p class="footer-entry">©2016-2020 Li Ruitong</p>
<p class="footer-entry">Built with <a href="https://hexo.io/" target="_blank">Hexo</a> and <a href="https://github.com/yelog/hexo-theme-3-hexo" target="_blank">3-hexo</a> theme</p>

    </div>
    <div class="full-toc">
        <button class="full"><span class="min "></span></button>
<button class="post-toc-menu"><span class="post-toc-menu-icons"></span></button>
<div class="post-toc"><span class="post-toc-title">目录</span>
    <div class="post-toc-content">

    </div>
</div>
<a class="" id="rocket" ></a>
    </div>
</div>
<div class="acParent"></div>

<div class="hide_box" onclick="dashangToggle()"></div>
<div class="shang_box">
    <a class="shang_close" onclick="dashangToggle()">×</a>
    <div class="shang_tit">
        <p>喜欢就点赞,疼爱就打赏</p>
    </div>
    <div class="shang_payimg">
        <div class="pay_img">
            <img src="/lrt_blog/img/alipay.jpg" class="alipay" title="扫码支持">
            <img src="/lrt_blog/img/weixin.jpg" class="weixin" title="扫码支持">
        </div>
    </div>
    <div class="shang_payselect">
        <span><label><input type="radio" name="pay" checked value="alipay">支付宝</label></span><span><label><input type="radio" name="pay" value="weixin">微信</label></span>
    </div>
</div>


</body>
<script src="/lrt_blog/js/jquery.pjax.js?v=1.0.0" ></script>

<script src="/lrt_blog/js/script.js?v=1.0.0" ></script>
<!-- 代码块复制功能 -->
<script type="text/javascript" src="/lrt_blog/js/clipboard.min.js"></script>
<script type="text/javascript" src="/lrt_blog/js/clipboard-use.js"></script>
<!-- mermaid chart -->

<script src='https://unpkg.com/mermaid@7.1.2/dist/mermaid.min.js'></script>
<script>
    if (window.mermaid) {
        mermaid.initialize({theme: 'forest'});
    }
</script>

<script>
    var img_resize = 'default';
    /*作者、标签的自动补全*/
    $(function () {
        $('.search').AutoComplete({
            'data': ['#教程','#centos','#linux','#问题集锦','#防火墙','#软件安装','#ubuntu','#svn','#git','#MongoDB','#jd-gui','#java','#反编译','#MySQL','#Redis','#学习笔记','#navicat','#DM','#windows','#系统优化','#书签','#Nginx','#docker','#vue','#Yarn','#前端开发','#vscode','#eslint','#prettier','#Markdown','#hexo','#开源','#Maven',],
            'itemHeight': 20,
            'width': 418
        }).AutoComplete('show');
    })
    function initArticle() {
        /*渲染对应的表格样式*/
        
            $(".post .pjax table").addClass("green_title");
        

        /*渲染打赏样式*/
        
        $("input[name=pay]").on("click", function () {
            if($("input[name=pay]:checked").val()=="weixin"){
                $(".shang_box .shang_payimg .pay_img").addClass("weixin_img");
            } else {
                $(".shang_box .shang_payimg .pay_img").removeClass("weixin_img");
            }
        })
        

        /*高亮代码块行号*/
        
        $('pre code').each(function(){
            var lines = $(this).text().split('\n').length, widther='';
            if (lines>99) {
                widther = 'widther'
            }
            var $numbering = $('<ul/>').addClass('pre-numbering ' + widther).attr("unselectable","on");
            $(this).addClass('has-numbering ' + widther)
                    .parent()
                    .append($numbering);
            for(var i=1;i<=lines;i++){
                $numbering.append($('<li/>').text(i));
            }
        });
        

        /*访问数量*/
        
        $.getScript("//busuanzi.ibruce.info/busuanzi/2.3/busuanzi.pure.mini.js");
        

        /*代码高亮，行号对齐*/
        $('.pre-numbering').css('line-height',$('.has-numbering').css('line-height'));

        
    }

    /*打赏页面隐藏与展示*/
    
    function dashangToggle() {
        $(".shang_box").fadeToggle();
        $(".hide_box").fadeToggle();
    }
    

</script>

<!--加入行号的高亮代码块样式-->

<style>
    pre{
        position: relative;
        margin-bottom: 24px;
        border-radius: 10px;
        border: 1px solid #e2dede;
        background: #FFF;
        overflow: hidden;
    }
    code.has-numbering{
        margin-left: 30px;
    }
    code.has-numbering.widther{
        margin-left: 35px;
    }
    .pre-numbering{
        margin: 0px;
        position: absolute;
        top: 0;
        left: 0;
        width: 20px;
        padding: 0.5em 3px 0.7em 5px;
        border-right: 1px solid #C3CCD0;
        text-align: right;
        color: #AAA;
        background-color: #fafafa;
    }
    .pre-numbering.widther {
        width: 35px;
    }
</style>

<!--自定义样式设置-->
<style>
    
    
    .nav {
        width: 542px;
    }
    .nav.fullscreen {
        margin-left: -542px;
    }
    .nav-left {
        width: 120px;
    }
    
    
    @media screen and (max-width: 1468px) {
        .nav {
            width: 492px;
        }
        .nav.fullscreen {
            margin-left: -492px;
        }
        .nav-left {
            width: 100px;
        }
    }
    
    
    @media screen and (max-width: 1024px) {
        .nav {
            width: 492px;
            margin-left: -492px
        }
        .nav.fullscreen {
            margin-left: 0;
        }
        .nav .hide-list.fullscreen {
            left: 492px
        }
    }
    
    @media screen and (max-width: 426px) {
        .nav {
            width: 100%;
        }
        .nav-left {
            width: 100%;
        }
    }
    
    
    .nav-right .title-list nav a .post-title, .nav-right .title-list #local-search-result a .post-title {
        color: #383636;
    }
    
    
    .nav-right .title-list nav a .post-date, .nav-right .title-list #local-search-result a .post-date {
        color: #5e5e5f;
    }
    
    
    .nav-right nav a.hover, #local-search-result a.hover{
        background-color: #e2e0e0;
    }
    
    

    /*列表样式*/
    
    .post .pjax article .article-entry>ol, .post .pjax article .article-entry>ul, .post .pjax article>ol, .post .pjax article>ul{
        border: #e2dede solid 1px;
        border-radius: 10px;
        padding: 10px 32px 10px 56px;
    }
    .post .pjax article .article-entry li>ol, .post .pjax article .article-entry li>ul,.post .pjax article li>ol, .post .pjax article li>ul{
        padding-top: 5px;
        padding-bottom: 5px;
    }
    .post .pjax article .article-entry>ol>li, .post .pjax article .article-entry>ul>li,.post .pjax article>ol>li, .post .pjax article>ul>li{
        margin-bottom: auto;
        margin-left: auto;
    }
    .post .pjax article .article-entry li>ol>li, .post .pjax article .article-entry li>ul>li,.post .pjax article li>ol>li, .post .pjax article li>ul>li{
        margin-bottom: auto;
        margin-left: auto;
    }
    

    /* 背景图样式 */
    
    


    /*引用块样式*/
    

    /*文章列表背景图*/
    

    
</style>







</html>
